목록CodingTest (430)
기록방

👉 문제링크 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 🔸 문제 분석 🔸 n개의 수에서 두 수의 합이 x가 되는 경우의 수를 출력한다. 수열을 오름차순 정렬한다. 두 포인터를 만들어서 하나는 맨 앞, 하나는 맨 뒤부터 시작해 합이 x인지 확인하며 카운트한다. 합이 x보다 작으면 앞 포인터를 +1, 크면 뒤 포인터를 -1 한다. 앞 포인터를 +1하면 합이 커진다. 뒤 포인터를 -1하면 합이 작아진다. 앞 포인터와 뒤 포인터가 만나면 종료한다. 카운트한..

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