<Baekjoon>#2309 일곱 난쟁이 (Find Dwarf) c++

Google 아니고 Joogle·2021년 10월 26일
0

Baekjoon

목록 보기
4/47
post-thumbnail

이 문제는 9명의 난쟁이 중 합이 100이 되는 7명의 난쟁이를 찾아 오름차순으로 출력하는 문제이다.

9명 전체 난쟁이의 합에서 두 명을 골라 뺐을 때 합이 100이 되는 경우를 찾으면 된다.

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 9;

int dwarf[9];
int sum = 0;

int  findDwarf() {
	for (int i = 0; i < N; i++) {
		for (int j = i + 1; j < N; j++) {
			if (sum - (dwarf[i] + dwarf[j]) == 100) {
				for (int k = 0; k < N; k++) {
					if (k == i || k == j) continue;
					cout << dwarf[k] << '\n';
				}
				return 0;
			}
		}
	}
}

int main() {
	for (int i = 0; i < N; i++) {
		cin >> dwarf[i];
		sum += dwarf[i];
	}
	sort(dwarf, dwarf + 9);

	findDwarf();
	return 0;

}

처음 sum - (dwarf[i] + dwarf[j])==100일 때 dwarf[i]와 dwarf[j]를 빼고 출력한 후에 break; 를 했더니 결과는 나오는데 백준에서 자꾸 틀렸다고 떴다.

break를 하면 안쪽 루프만 빠져나오고 바깥 for문은 다시 돌기 때문에 return 0 을 해서 끝내줘야 한다.

이런 사소한 실수 하나가 다 실력이다 ㅠㅠ

profile
Backend 개발자 지망생

0개의 댓글