온라인저지
[BOJ]2309번: 일곱 난쟁이
plzfday
2017. 9. 3. 16:24
풀이
무식하게 brute force를 해보자. 제한된 상황에서는 이런 좋은!! 알고리즘이 어디 있겠는가.
처음에 어떻게 풀어야 할 지 모르겠어서 헤맸다. 나는 어떻게 풀었냐면 일단 9명의 키를 다 더한다.
그리고 키 순서 대로 정렬을 시켰다.
반복문을 돌면서 sum - (i번째 값 + j번째 값) == 100이 되면 i와 j의 인덱스를 저장해서 출력을 할 때
그 인덱스는 거르고 출력 할 수 있게 했다.
코드
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 | #include <stdio.h> #include <algorithm> using namespace std; int arr[9], i, j, sum =0, save_index1, save_index2; int main() { for (int i = 0; i < 9; ++i) { scanf("%d", &arr[i]); sum += arr[i]; } sort(arr, arr + 9); for (i = 0; i < 9; ++i) { for (j = i + 1; j < 9; ++j) { if (sum - arr[i] - arr[j] == 100) { save_index1 = i; save_index2 = j; } } } for (int i = 0; i < 9; ++i) { if (i == save_index1 || i == save_index2) continue; else printf("%d\n", arr[i]); } return 0; } |