Notice
Recent Posts
Recent Comments
Link
CodeClover
[JAVA_백준 2309] 일곱 난쟁이 본문
https://www.acmicpc.net/problem/2309
📌 문제 탐색하기
9명의 난쟁이의 키의 값중에서 7명의 키의 합이 정확하게 100이 되는 경우를 찾아야하는 문제이다.
선택된 7명의 난쟁이의 키를 오름차순으로 출력해야한다.
가능한 시간복잡도
- 정렬을 사용하니까 O(log n)
- 2명 제외하도록 경우의 수 찾아야하니까 O(n^2)
📌 코드 설계하기
- 9명의 난쟁이의 키를 입력받습니다.
- 난쟁이들의 키를 오름차순으로 정렬합니다.
- 9명의 키의 합을 구하고 이중 반복문을 사용해서 두명의 난쟁이를 선택하고 전체 합에서 두명의 키를 뺀 값이 100이 되는 경우를 찾습니다. 만족하는 경우를 찾으면 반복문 종료하면 됩니다.
- 2명 제외한 7명 키를 오름차순으로 정렬해서 출력하면 됩니다.
📌 정답 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] height = new int[9];
int total = 0;
for (int i = 0; i < 9; i++) {
height[i] = sc.nextInt();
total += height[i];
}
Arrays.sort(height);
int exclude1 = -1, exclude2 = -1;
for (int i = 0; i < 9; i++) {
for (int j = i + 1; j < 9; j++) {
if (total - height[i] - height[j] == 100) {
exclude1 = i;
exclude2 = j;
break;
}
}
if (exclude1 != -1) break;
}
for (int i = 0; i < 9; i++) {
if (i != exclude1 && i != exclude2) {
System.out.println(height[i]);
}
}
}
}
'코딩테스트' 카테고리의 다른 글
[JAVA_백준 1181] 단어 정렬 (1) | 2025.01.08 |
---|---|
[JAVA_백준 10814] 나이순 정렬 (1) | 2025.01.07 |
[프로그래머스 / SQL] 잡은 물고기 중 가장 큰 물고기의 길이 구하기 _MYSQL (1) | 2024.12.04 |
[프로그래머스 / SQL] GROUP BY문제 (입양 시각 구하기(1))_oracle (1) | 2024.08.03 |
[프로그래머스 / SQL] GROUP BY문제 (조건에 맞는 사용자와 총 거래금액 조회하기) (1) | 2024.08.03 |