✔ 파일 탐색기[백준 20210]코드 구현하기/* * 문제 분석하기 * : 정렬 규칙에 맞춰 조건을 세워 정렬하도록 함 *//* * 손으로 풀어보기 * 1. 문자열의 문자를 비교해 둘 다 숫자일 경우, 수를 비교해 더 작은 것이 앞에 오도록 함 * 이때 두 수가 같다면 0의 개수가 적은 것이 앞에 오도록 함 * 2. 둘 다 문자일 경우, 알파벳의 순서대로 더 작은 것이 앞에 오도록 함 * 이때 두 알파벳이 같은 알파벳이라면 대문자가 앞에 오도록 함 * 3. 하나는 문자, 하나는 숫자일 경우, 숫자가 앞에 오도록 함 * 4. 두 문자열을 비교한 후 뒤에 문자가 더 붙어있는 문자열이 있다면, 뒤에 오도록 함 *//* * 20210) 파일탐색기 */public class Main { sta..
✔ 나머지 합[백준 10986]코드 구현하기/* * 문제 분석하기 * : 수들끼리의 누적합을 구한 후, 이들이 M으로 나누어 떨어지는지 확인하여 구간의 개수를 증가시키도록 함 * 또한 나머지가 같은 구간을 이용해 M으로 나누어 떨어지는지 확인하도록 함 * 예) A = {1, 2, 3, 1, 2}, M = 3 * S[1] = 1 + 2 = 3 -> M으로 나누어 떨어짐 * S[0] = 1 -> 나머지 1이 발생 * S[3] = 1 + 2 + 3 + 1 = 7 -> 나머지 1이 발생 * 그러므로 S[1] ~ S[3] = 2 + 3 + 1 -> M으로 나누어 떨어짐 *//* * 손으로 풀어보기 * 1. 수들끼리의 누적합을 구함 * 2. 누적합을 확인해 M으로 나..
✔ 줄어드는 수[백준 1174]코드 구현하기/* * 문제 분석하기 * : 백트래킹을 이용해 재귀하며 9 ~ 0의 숫자에 대해 해당 수를 선택할지 말지 여부를 찾아 조합하도록 함 * 이때 10개의 수에 대해 모두 재귀했다면 멈추도록 함 *//* * 손으로 풀어보기 * 1. 백트래킹을 이용해 재귀하며 9 ~ 0의 숫자에 대해 해당 수를 선택할지 말지 여부를 찾아 조합 * 2. 이를 정렬하여 N번째 작은 줄어드는 수를 출력/* * 1174) 줄어드는_수 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int N; static int[] di..
✔ 색종이와 가위[백준 20444]코드 구현하기/* * 문제 분석하기 * : 가로로 색종이를 자르는 횟수를 이분 탐색하며 잘리는 색종이의 개수를 구하도록 함 * 이를 반복하여 K개의 색종이 조각을 만들 수 있는지 찾도록 함 *//* * 손으로 풀어보기 * 1. 가로로 색종이를 자르는 횟수를 0 ~ N / 2로 정하여 이분 탐색 * 2. 이분 탐색하며 가로로 색종이를 자르는 횟수에 따라 잘리는 색종이의 개수를 구하도록 함 * 3. 이를 반복하여 K개의 색종이 조각을 만들 수 있는지 찾도록 함/* * 20444) 색종이와_가위 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System..
✔ 미세먼지 안녕![백준 17144]코드 구현하기/* * 문제 분석하기 * : T초 동안 미세먼지를 상하좌우 탐색을 통해 확산시키고, 공기청정기를 작동하여 미세먼지를 이동시키도록 함 * 이때 공기청정기 위치로 이동하는 미세먼지는 정화되어 사라지도록 함 *//* * 손으로 풀어보기 * 1. 미세먼지를 상하좌우 탐색을 통해 확산 * 2. 공기청정기를 작동하여 공기청정기의 위쪽은 반시계 방향, 아래쪽은 시계방향으로 순환해 미세먼지를 이동 * 3. 공기청정기 위치로 이동하는 미세먼지는 사라지게 됨 * 4. 이를 T번 반복한 후 남아있는 미세먼지의 양을 출력/* * 17144) 미세먼지_안녕! */public class Main { static BufferedReader br = new Buffere..
✔ 제곱수 찾기[백준 1025]코드 구현하기/* * 문제 분석하기 * : 등차수열로 이루어져야 하므로 조건에 따라 * '왼쪽 아래 -> 위 / 왼쪽 위 -> 아래 / 오른쪽 아래 -> 위 / 오른쪽 위 -> 아래 / 행 -> 행 / 열 -> 열'로 이동하며 * 가장 큰 완전 제곱수를 구하도록 함 *//* * 손으로 풀어보기 * 1. '왼쪽 아래 -> 위 / 왼쪽 위 -> 아래 / 오른쪽 아래 -> 위 / 오른쪽 위 -> 아래 / 행 -> 행 / 열 -> 열'로 등차수열에 따라 이동 * 2. 위를 반복하며 만들 수 있는 정수가 완전 제곱수이라면 더 큰 완전 제곱수로 갱신하여 가장 큰 완전 제곱수를 구하도록 함/* * 1025) 제곱수_찾기 */public class Main { stati..
✔ 공주님을 구해라![백준 17836]코드 구현하기/* * 문제 분석하기 * : 벽을 피해 상하좌우로 BFS 탐색하면서 T시간만에 공주님이 있는 곳에 도달할 수 있는지 확인 * 이때 용사가 그람을 구할 경우 벽에 상관없이 이동할 수 있게 됨 *//* * 손으로 풀어보기 * 1. 벽을 피해 상하좌우로 BFS 탐색 * 2. 용사가 그람을 구할 경우부터 벽에 상관없이 이동할 수 있게 됨 * 3. T시간만에 공주님이 있는 곳에 도달할 수 있는지 확인/* * 17836) 공주님을_구해라! */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int N, ..