https://www.acmicpc.net/problem/2309
이 문제는 다른분의 코드를 참고하여 작성했다.
막혔던 부분
- 9명 난쟁이의 키를 모두 더하고 이중for문을 돌려 100에서 뺀값이 9명중 2명의 합과 같으면 그 원소들을 제외해야한다는 사실은 알았다.
- 하지만 다른 for문으로 구한 원소를 삭제하는 방법을 생각을 못했다.
간단하게 또 하나의 for문을 만들어서 i나 j가 새로운 for문의 값과 같으면 continue, 아니면 원소를 출력하는 방식으로 구현하면 되는 문제였다.
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[9];
int sum = 0;
for (int i = 0; i < 9; i++) {
cin >> a[i];
sum += a[i];
}
sort(a, a + 9);
for (int i = 0; i < 9; i++) {
for (int j = i+1; j < 9; j++) {
if ((sum - (a[i] + a[j])) == 100) {
for (int k = 0; k < 9; k++) {
if (i == k || j == k)
continue;
else
cout << a[k] << endl;
}
return 0;
}
}
}
}
피드백
return 0; 부분을 맨 마지막에 넣으면 실패로 뜨고 다른분의 코드를 참고한 위치에 넣으면 성공으로 뜬다. 그 이유는 정확히 모르겠다.. 물어봐서 나중에 꼭 해결하자