본문 바로가기

메인17

[Baekjoon] 1766 문제집 with Java 문제 민오는 1번부터 N번까지 총 N개의 문제로 되어 있는 문제집을 풀려고 한다. 문제는 난이도 순서로 출제되어 있다. 즉 1번 문제가 가장 쉬운 문제이고 N번 문제가 가장 어려운 문제가 된다. 어떤 문제부터 풀까 고민하면서 문제를 훑어보던 민오는, 몇몇 문제들 사이에는 '먼저 푸는 것이 좋은 문제'가 있다는 것을 알게 되었다. 예를 들어 1번 문제를 풀고 나면 4번 문제가 쉽게 풀린다거나 하는 식이다. 민오는 다음의 세 가지 조건에 따라 문제를 풀 순서를 정하기로 하였다. N개의 문제는 모두 풀어야 한다. 먼저 푸는 것이 좋은 문제가 있는 문제는, 먼저 푸는 것이 좋은 문제를 반드시 먼저 풀어야 한다. 가능하면 쉬운 문제부터 풀어야 한다. 예를 들어서 네 개의 문제가 있다고 하자. 4번 문제는 2번 문.. 2023. 5. 10.
[Inflearn] 암호 with Java 문제 현수는 영희에게 알파벳 대문자로 구성된 비밀편지를 매일 컴퓨터를 이용해 보냅니다. 비밀편지는 현수와 영희가 서로 약속한 암호로 구성되어 있습니다. 비밀편지는 알파벳 한 문자마다 # 또는 *이 일곱 개로 구성되어 있습니다. 만약 현수가 “#*****#”으로 구성된 문자를 보냈다면 영희는 현수와 약속한 규칙대로 다음과 같이 해석합니다. 1. “#*****#”를 일곱 자리의 이진수로 바꿉니다. #은 이진수의 1로, *이진수의 0으로 변환합니다. 결과는 “1000001”로 변환됩니다. 2. 바뀐 2진수를 10진수화 합니다. “1000001”을 10진 수화하면 65가 됩니다. 3. 아스키 번호가 65문자로 변환합니다. 즉 아스크번호 65는 대문자 'A'입니다. 참고로 대문자들의 아스키 번호는 'A'는 65번.. 2023. 1. 8.
[Inflearn] 유효한 펠린드롬 with Java 문제 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다. 문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요. 단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다. 알파벳 이외의 문자들의 무시합니다. 입력 첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다. 출력 첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다. 입력 예시 1 found7, time: study; Yduts; emit, 7Dnuof 출력 예시 1 YES 아이디어 우선 해당 문제에서 가장 중요한 핵심은 "알파벳 이외는 문자는 어떻게 무시하는가?" 입니다. 이번 글에서는 총 두 개의 방식을 소개해보려고 .. 2023. 1. 7.
[Inflearn] 가장 짧은 문자거리 with Java 문제 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출력하는 프로그램을 작성하세요. 입력 첫 번째 줄에 문자열 s와 문자 t가 주어진다. 문자열과 문자는 소문자로만 주어집니다. 문자열의 길이는 100을 넘지 않는다. 출력 첫 번째 줄에 각 문자열 s의 각 문자가 문자 t와 떨어진 거리를 순서대로 출력한다. 입력 예시 1 teachermode e 출력 예시 1 1 0 1 2 1 0 1 2 2 1 0 아이디어 시도 1 처음에 고난을 겪었던 부분은 바로 문자 사이 간 증가했다 감소하는 부분이였다. 우선 StringTokenizer를 사용하여 문자열을 토큰 단위로 쪼개였고, 쪼개는 단위는 입력 받은 문자였다. 그리고 단어의 길이 만큼 증가하고 감소하고를 반복했지만,.. 2023. 1. 5.