[C++][백준 2309] 일곱 난쟁이

PublicMinsu·2025년 9월 5일

문제

https://www.acmicpc.net/problem/2309

접근 방법

9개 중 2개를 제외했을 때 100인 경우를 찾아내면 됩니다.

코드

#include <iostream>
#include <algorithm>
using namespace std;

int nums[9];
int sum;

int main()
{
    ios::sync_with_stdio(0), cin.tie(0);

    for (int &num : nums)
    {
        cin >> num;
        sum += num;
    }

    sort(nums, nums + 9);

    for (int i = 0; i < 9; ++i)
    {
        for (int j = i + 1; j < 9; ++j)
        {
            if (sum - nums[i] - nums[j] == 100)
            {
                for (int k = 0; k < 9; ++k)
                {
                    if (k == i || k == j)
                    {
                        continue;
                    }

                    cout << nums[k] << "\n";
                }
                return 0;
            }
        }
    }
    return 0;
}

풀이

미리 정렬을 해두고 탐색을 해두는 편이 추후 출력할 때 편합니다.
2중 for문으로 제외할 조합을 찾아낸 뒤 제외했을 때 100인지 확인하고 100이면 나머지 7개의 숫자를 출력해 주고 끝내면 됩니다.

profile
연락 : publicminsu@naver.com

0개의 댓글