728x90
난이도 : 브론즈2
풀이 과정 :
전형적인 완전 탐색 문제입니다.
저는 9명의 난쟁이의 키를 배열로 입력받아서 모두 더한다음 2명을 빼서 키의 합이 100이되는 경우의 수를 다 탐색해보는 방법으로 풀었습니다.
2명을 빼는 방법은 이중반복문을 이용해서 모든 경우의 수를 다 탐색할 수있게 합니다.
그리고 오름차순으로 출력해야 하기 때문에 입력받은다음 바로 정렬해줬습니다.
코드 :
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[9];
int sum = 0;
for (int i = 0; i < 9; i++) {
scanf("%d", &arr[i]);
sum += arr[i];
}
sort(arr, arr + 9);
for (int i = 0; i < 9; i++) {
for (int j = 0; j < i; j++) {
sum -= (arr[i]+ arr[j]);
if (sum == 100) {
for (int k = 0; k < 9; k++) {
if (k == i || k == j) continue;
printf("%d\n", arr[k]);
}
return 0;
}else sum += (arr[i] + arr[j]);
}
}
}
실수한 점 :
sum -(arr[i]+arr[j]) 라고 써서 sum에 뺀 값이 저장이 되지 않았다.
증감연산자를 잘 쓰자
728x90
'Algorithm > Solution' 카테고리의 다른 글
[C++] 백준 8958 OX퀴즈 (0) | 2021.05.02 |
---|---|
[C++] 1260 DFS와 BFS (0) | 2021.03.14 |
[C++] 17478번 재귀함수가 뭔가요? (0) | 2021.01.18 |
[C++] 2960번 에라토스테네스의 체 (0) | 2021.01.17 |
[C++] 2167번 2차원 배열의 합 (0) | 2021.01.17 |