백준 2309번 문제 바로가기
bruteforce#
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> snowWhite;
int total = 0;
int height = 0;
bool check = false;
for (int i=0; i<9; i++){
cin >> height;
total += height;
snowWhite.push_back(height);
}
sort(snowWhite.begin(), snowWhite.end());
for (int i=0; i<9; i++){
for (int j=i+1; j<9; j++){
if (snowWhite[i] + snowWhite[j] == total - 100){
check = true;
for (int k=0; k<9; k++){
if (k == i || k == j){
continue;
}
cout << snowWhite[k] << endl;
}
break;
}
}
if (check) break;
}
return 0;
}
Review#
- bruteforce을 이용하면 간단하게 풀어낼 수 있는 문제
- 다만, 이중 for문을 사용하기에
break
처리에 유의해야 한다.
- 내부 for문만 break하고 외부 for문은 break하지 않으면,
- 모든 경우의 수를 출력하기 때문에
틀렸습니다
가 발생할 수 있다.