티스토리 뷰
문제
출처 : https://www.acmicpc.net/problem/2309
풀이과정
아홉명의 난쟁이 중에 진짜 난쟁이 일곱명을 추려내는 문제이다. 일곱 난쟁이의 키의 합은 100이라는 사실을 이용해 풀이하면 된다. 9명 중 2명을 선택해 난쟁이가 아니라고 생각하고 나머지 7명의 키 합이 100이면 된다.
9명 중 2명을 선택하는 경우의 수가 36가지 이므로 완전 탐색으로 풀었다.
코드가 더러운 것 같다. 불필요한 과정을 생각해서 코드를 깔끔하게 바꾸는 연습도 해야겠다.
소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #include <iostream> #include <vector> #include <algorithm> using namespace std; int height[9], result; int index1, index2; vector<int> ans; int main() { cin.sync_with_stdio(false); for (int i = 0; i < 9; i++) { cin >> height[i]; result += height[i]; } for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { if (i != j && (result - height[i] - height[j]) == 100) { index1 = i; index2 = j; break; } } } for (int i = 0; i < 9; i++) { if (index1 != i && index2 != i) ans.push_back(height[i]); } sort(ans.begin(), ans.end()); for (int i = 0; i < ans.size(); i++) cout << ans[i] << "\n"; return 0; } | cs |
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2193번 이친수 (0) | 2018.01.03 |
---|---|
[백준] 11057번 오르막 수 (0) | 2018.01.03 |
[백준] 11502번 붕어빵 판매하기 (0) | 2017.12.29 |
[백준] 10844번 쉬운 계단 수 (0) | 2017.12.28 |
[백준] 1932번 숫자삼각형 (0) | 2017.12.27 |