목록CodingTest/Java (342)
기록방
👉 문제링크 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 🔸 문제 분석 🔸 2부터 n까지 수를 선택한다. 선택한 수와 n까지의 배수들을 차례로 지운다. 지우지 않은 수가 남아있다면 반복한다. k번째 지운 수를 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int count = 0; boolean[] arr = new bo..
👉 문제링크 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 🔸 문제 분석 🔸 n X n 로 사탕이 있다. 사탕의 종류는 C, P, Z, Y가 있다. 인접한 두 칸을 골라 사탕을 교환한다. 같은 색으로 이루어진 행 또는 열 중 먹을 수 있는 사탕의 최대값을 출력한다. 풀이 최대값을 찾기 위해서는 교환할 수 있는 모든 경우의 수를 찾아야 한다. 사탕 교환은 아래 혹은 오른쪽으로만 이동하며 진행한다. 각각의 경우에 나오는 연속된 사탕의 최대값을 저장한다. 사탕의 최소값은 1이다. 최대값을 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { static char[][] arr; ..
👉 문제링크 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 www.acmicpc.net 🔸 문제 분석 🔸 주어진 기둥들을 사용해 창고를 지을때 만들 수 있는 면적 중 최소값을 출력한다. 조건들을 맞춰서 최소면적을 구하는 방법은 다음과 같다. 가장 높은 기둥을 중심으로 왼쪽 오른쪽으로 낮아지는 지붕 오목한 부분이 없어야 하므로 끝에서 가장 높은 기둥까지 다가오며, 더 큰 기둥을 만날때만 높이를 높임 🔸 코드 🔸 import java.util.Arrays; import java.util.Comparator; import j..
👉 문제링크 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 🔸 문제 분석 🔸 순열의 수 n과 순열이 입력된다. 순열을 사전 순으로 정렬했을 때, 입력 된 순서의 다음 순서인 순열을 출력한다. n이 1만까지 입력되므로, 재귀 메소드를 이용해 사전순 정렬을 구현하면 시간초과가 난다. (1만 팩토리얼..?) 사전 순 정렬은 다시 말하면 순열에서 내림차순 정렬이다. 순열이 [1, 2, 3, 6, 5, 4]이라고 가정하면, 123654 다음으로 큰 수를 찾아야 한다. 654만 봤을때 해당 조합에서 가장 큰 수이다.(내림차순) 그 다음수를 찾으려면 내림차순이 아니게 되는 3을 바..
👉 문제링크 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net 🔸 문제 분석 🔸 100x100 흰 종이에 10x10 색종이들을 놓았을때 색종이가 붙은 칸의 수를 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); boolean[][] arr = new boolean[100][100]; for ..