[백준 2309] 일곱 난쟁이

Minju Kwak·2022년 6월 18일
0

BOJ

목록 보기
2/22
post-thumbnail

문제

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; 부분을 맨 마지막에 넣으면 실패로 뜨고 다른분의 코드를 참고한 위치에 넣으면 성공으로 뜬다. 그 이유는 정확히 모르겠다.. 물어봐서 나중에 꼭 해결하자

profile
그냥 나만의 노트

0개의 댓글