목록CodingTest/Java (342)
기록방
👉 문제링크 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 🔸 문제 분석 🔸 n개의 수로 이루어진 수열에서 연속된 k개를 골랐을 때 그 합의 최대값을 출력한다. 전형적인 두 포인터, 슬라이딩 윈도우 문제이다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StreamTokenizer; import java.util.StringTokeniz..
👉 문제링크 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 🔸 문제 분석 🔸 n개의 영수증의 총 합이 x와 같으면 'Yes' 다르면 'No'를 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int n = sc.nextInt(); int sum = 0; for (int i = 0; i ..
👉 문제링크 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 🔸 문제 분석 🔸 n개의 숫자의 합이 m보다 작거나 같게 만들어야 한다. 그 중 최대값을 출력한다. 숫자들의 합이 m보다 작다면, 기존 숫자들 중 최대값을 출력한다. 숫자들의 합이 m보다 크다면, 최대값 커트라인을 만들고 합이 최대가 될 때의 커트라인을 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { private static int sum(int[] arr, int max) { int ..
👉 문제링크 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 🔸 문제 분석 🔸 nCm을 출력한다. n개의 수에서 m개를 선택하는 조합의 공식과 예시는 다음과 같다. n! / (n-r)!r! n=5, r=2 : 5*4*3/2*1 n이 팩토리얼로 아주 큰 값으로 커져 long의 범위를 벗어나므로 BigInteger를 사용해야한다. 🔸 코드 🔸 import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = s..
👉 문제링크 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 🔸 문제 분석 🔸 n이 주어졌을때 1부터 n까지의 수로 이루어진 순열을 사전순으로 출력한다. 🔸 코드 🔸 import java.util.Scanner; import java.util.Stack; public class Main { static Stack stack; private static void dfs(int d, StringBuilder sb) { if (stack.size() == d) { for (int i : stack) { sb.append(i+" "); } sb.append("\n"); } for (int i = 1; i