목록CodingTest (430)
기록방

👉 문제링크 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 🔸 문제 분석 🔸 입력된 수의 각 자리를 바꿔 만들 수 있는 30의 배수의 최대값을 출력한다. 30의 배수를 만들지 못하면 -1을 출력한다. 30의 배수가 되기 위해서는, 가장 오른쪽 수가 0이 되야하며 모든 자리수의 합이 3의 배수가 되어야 한다. 입력된 수를 자리 수 대로 내림차순 정렬한다. 각 자리수의 합과 가장 끝 수를 확인한다. 🔸 코드 🔸 import java.util.Arrays; import java.util.Collections; imp..

👉 문제링크 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을 바..