본문 바로가기

전체 글275

[BAEKJOON] 1259번 팰린드롬수 0을 입력 받기 전까지 반복문을 수행한다. 입력 받은 문자열의 첫 번째 문자와 가장 마지막 문자를 비교하고, 두 번째 문자와 마지막에서 두 번째 문자를 비교하여 같은지 판단하기를 반복한다. 문자열 길이의 절반 횟수만큼만 비교하면 된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in.. 2022. 1. 31.
[BAEKJOON] 1193번 분수 찾기 지그재그로 지나가는 루트를 층 단위의 개념으로 이해해보자. 홀수 층은 대각선 위 방향으로, 짝수 층은 대각선 아래 방향으로 움직인다. 이때 (층수+1)은 각 층에 존재하는 분수의 분모와 분자를 더한 수와 같다. 내가 찾고자 하는 분수가 8번째라고 하면 예제 출력에 의하면 2/3이어야 한다. 1층에 분수 1개, 2층에 분수 2개, 3층에 분수 3개, ... 와 같은 패턴을 보인다. 입력 예제가 몇 층에 위치하는지, 해당 위치의 분수는 어떤 수로 분자와 분모를 이루는지 패턴을 읽어보자. 반복문을 돌면서 해당 층수의 분수 개수를 누적하여 더한다. 1층까지의 누적 분수 개수 => 1개 2층까지의 누적 분수 개수 => 1+2개 3층까지의 누적 분수 개수 => 1+2+3개 4층까지의 누적 분수 개수 => 1+2+3.. 2022. 1. 31.
[BAEKJOON] 2839번 설탕 배달 입력 받은 N 킬로그램을 5킬로그램, 3킬로그램 봉지로 각각 최대 몇 개씩 배달할 수 있는지 구하는 문제이다. 5킬로그램 최대 개수와 3킬로그램 최대 개수로 제한하여 모든 조합의 경우의 수를 생각해볼 수 있다. 예를 들어 총 18킬로그램은 5킬로그램으로 최대 3개, 3킬로그램으로 최대 6개까지만 배달할 수 있다. 최소 개수로 18킬로그램을 맞추기 위해서는 5킬로그램짜리 봉지를 많이 배달하는 것이 효율적일 것이다. 5킬로그램짜리 봉지 최대 개수에서부터 최소 개수 0개까지, 3킬로그램짜리 봉지 최소 개수 0에서 최대 개수까지, N킬로그램에 맞는 조합을 찾는다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOExce.. 2022. 1. 30.
[BAEKJOON] 2941번 크로아티아 알파벳 주어진 입력 문자열에서 크로아티아 알파벳으로 변경 가능한 8가지 경우의 수를 모두 고려하여 변경이 가능하다면 공백으로 대체하여 문자 하나로 취급한다. 결국 크로아티아 알파벳이 아닌 영문자와 공백으로 이루어진 문자열이 완성될 것이고, 공백 포함 문자열의 문자 개수를 출력한다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Main { public static void main(String[.. 2022. 1. 30.
[BAEKJOON] 5622번 다이얼 다이얼 최초 1까지 걸기 위한 시간 2초, 2부터는 1초씩 증가하여 3초, 3까지 4초, ... 의 시간이 걸린다. WA 입력을 받으면 W가 있는 다이얼 9까지 한 번, A가 있는 다이얼 2까지 한 번 걸어야 한다. 다이얼 9까지 걸리는 시간은 10초, 다이얼 2까지 걸리는 시간은 3초로 총 13초가 걸린다. 다이얼 번호에 적혀 있는 알파벳으로 나누어 배열을 만든다. 해당 문자를 포함한 문자열이 있다면 인덱스를 활용하여 시간을 구한다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamW.. 2022. 1. 29.
[BAEKJOON] 2908번 상수 세 자리 정수 두 개를 입력 받아 각 수를 문자열로 취급하여 역순으로 변환한다. 변환한 두 수의 대소비교를 하여 큰 수를 출력한다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWri.. 2022. 1. 28.