목록CodingTest/Java (342)
기록방
👉 문제링크 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 🔸 문제 분석 🔸 n x n 크기의 영상 정보에서 0 또는 1로 압축된 결과를 출력한다. 정사각형이 하나의 수로만 이루어져 있으면 그 수로 압축가능하다. 해당 수를 출력한다. 다른 수가 섞여있으면, 정사각형을 4등분해서 다시 압축한다. 4등분 했을때 결과값은 () 괄호로 묶어 출력한다. 재귀를 이용해서 정사각형이 하나의 수로 이루어져있지 않으면 4등분 값을 다시 검사하는 방식으로 해결한다. 🔸 코드 🔸 import java.io.Buff..
👉 문제링크 2312번: 수 복원하기 첫째 줄에 테스트 케이스의 수가 주어진다. 각 테스트 케이스마다 양의 정수 N (2 ≤ N ≤ 100,000)이 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 양의 정수 N이 주어지면 소인수 분해 결과를 출력한다. 2부터 N까지 나누며, 몫이 1이 될 때까지 반복한다. 나눈 수를 카운트한다 카운트한 나눈 수 들중에서 값이 1 이상인 것들만 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int tc = sc.nextInt(); StringBuilder sb = n..
👉 문제링크 7507번: 올림픽 게임 각 테스트 케이스마다 "Scenario #i:"를 출력한다. 여기서 i는 테스트 케이스 번호이며 1부터 시작한다. 그 다음 줄에는 상근이가 참석할 수 있는 경기의 최대 개수를 출력한다. 문제에서도 설명했지 www.acmicpc.net 🔸 문제 분석 🔸 문제 한 경기가 끝나야 다음 경기를 볼 수 있다. 종료와 시작 시간이 완전히 같아도 볼 수 있다. 테스트 케이스 별, 한 사람이 볼 수 있는 최대 경기 수를 출력한다. 풀이 (Greedy) 경기 정보를 날짜와 종료 시간으로 오름차순 정렬 한다. 다음 경기를 볼 수 있으면 카운트 + 1을 한다. 다음 경기가 다음 날짜이면, 무조건 볼 수 있으므로 다음 경기로 이동한다. 다음 경기의 시작이 현재 경기의 종료 시간보다 같거나..
👉 문제링크 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 N x N 크기의 정사각형 종이를 같은 색으로만 이루어진 정사각형으로 자를 때 최소 개수를 출력한다. 종이를 자르는 방법은 한 변의 길이를 절 반으로 하는 정사각형 4개를 만드는 것이다. 한 정사각형 범위가 모두 같은 색인지 체크하고, 같지 않다면 4등분으로 잘라 다시 색을 체크하는 재귀 메서드를 사용한다. 재귀 메서드의 입력 값은 한 변의 길이와 좌상단의 좌표이다. 🔸 코드 🔸 import java.ut..
👉 문제링크 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 🔸 문제 분석 🔸 H x N x M 크기의 창고에 익거나 덜 익은 토마토가 들어있다. 익은 토마토는 상하좌우전후의 덜 익은 토마토를 다음 날 익게 한다. 빈 칸도 있다. 토마토가 모두 익을 때 까지 최소 며칠이 걸리는지 출력한다. 모두 익지 못하면 -1을 출력한다. BFS를 통해 익은 토마토 옆 덜 익은 토마토들이 모두 익을 때 까지 걸리는 날을 계산한다. 큐에서 방금 익은 토마토의 좌표를 꺼낸다. 꺼낸 토마토 주변의 덜 익은..