반응형
https://www.acmicpc.net/problem/2309
2309번: 일곱 난쟁이
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
www.acmicpc.net
풀이 : 문제를 딱 보고 경우의 수가 생각났다.
조합으로 생각하면 9개의 data에서 7개의 요소를 선택하는 경우니 최악의 경우 9C2를 만족한다고 생각했다.
7개의 합으로 판단하는 것 보다 전체의 합에서 100을 만족시키게끔 배열의 요소를 빼는 풀이를 생각했다.
다만, break문을 잘못 써서 오답이 발생하였다.. break 문은 가장 가까운 loop를 탈출한다!! (정말 바보같다.)
질문 게시판에 나와 같이 break문을 잘못 기술하여 오답을 낸 분들이 존재했다.
5 10 15 20 25 12 13 11 14 입력이 주어졌다면 쉽게 풀 수 있었을텐데 없어서 한 번쯤은 오답을 낼만한 문제이다.
내 정답코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int arr[9], sum = 0;
for (int i = 0; i < 9; i++) {
cin >> arr[i];
sum += arr[i];
}
sort(arr, arr + 9);
for (int i = 0; i < 8; i++) {
for (int j = i + 1; j < 9; j++) {
if (sum - arr[i] - arr[j] == 100)
{
for (int k = 0; k < 9; k++) {
if (k != i && k != j)
cout << arr[k] << '\n';
}
return 0;}}}}
반응형
'Baekjoon' 카테고리의 다른 글
[C++]백준 10804번: 카드 역배치 (1) | 2024.02.08 |
---|---|
[C++]백준 10093번: 숫자 (0) | 2024.02.06 |
[C] 백준 10829번 : 이진수 변환 (0) | 2023.08.10 |
[C] 백준 2750번 : 수 정렬하기 (1) | 2023.02.02 |
[C] 백준 2563번 : 색종이 (0) | 2023.02.01 |