![[BOJ] 백준_3040번_백설 공주와 일곱 난쟁이_C/C++](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FZb8j9%2FbtrjWU764Ee%2FAAAAAAAAAAAAAAAAAAAAADXsLEVko4JSsotALyy6XdepGvJUB_G_d4TyNwWsZ7Ag%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DLUsLZvghV3UQ7o8B%252FQFJOlWFQqo%253D)
[BOJ] 백준_3040번_백설 공주와 일곱 난쟁이_C/C++백준 알고리즘2021. 11. 5. 09:37
목차
문제 출처
https://www.acmicpc.net/problem/3040
3040번: 백설 공주와 일곱 난쟁이
매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다.
www.acmicpc.net
문제
매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다.
어느 날 광산에서 아홉 난쟁이가 돌아왔다. (왜 그리고 어떻게 아홉 난쟁이가 돌아왔는지는 아무도 모른다) 아홉 난쟁이는 각각 자신이 백설공주의 일곱 난쟁이라고 우기고 있다.
백설공주는 이런 일이 생길 것을 대비해서, 난쟁이가 쓰고 다니는 모자에 100보다 작은 양의 정수를 적어 놓았다. 사실 백설 공주는 공주가 되기 전에 매우 유명한 수학자였다. 따라서, 일곱 난쟁이의 모자에 쓰여 있는 숫자의 합이 100이 되도록 적어 놓았다.
아홉 난쟁이의 모자에 쓰여 있는 수가 주어졌을 때, 일곱 난쟁이를 찾는 프로그램을 작성하시오. (아홉 개의 수 중 합이 100이 되는 일곱 개의 수를 찾으시오)
입력
총 아홉개 줄에 1보다 크거나 같고 99보다 작거나 같은 자연수가 주어진다. 모든 숫자는 서로 다르다. 또, 항상 답이 유일한 경우만 입력으로 주어진다.
출력
일곱 난쟁이가 쓴 모자에 쓰여 있는 수를 한 줄에 하나씩 출력한다.
코드
//[BOJ] 3040번_백설 공주와 일곱 난쟁이
#include <iostream>
using namespace std;
int main()
{
int num[9];
int sum = 0;
int a, b;
for (int i = 0; i < 9; i++)
{
cin >> num[i];
sum += num[i];
}
for (int i = 0; i < 9; i++)
{
for (int j = i + 1; j < 9; j++)
{
if (sum - (num[i] + num[j]) == 100)
{
a = i; b = j;
}
}
}
for (int k = 0; k < 9; k++)
{
if (k == a || k == b)
continue;
else
cout << num[k] << endl;
}
return 0;
}
풀이 과정
9개의 수를 입력받으면서 sum에 총합으로 더해준다. 두 난쟁이를 제외한 나머지 7명의 난쟁이의 모자 수 합이 100이 되는 경우를 찾아야 하므로 for문을 중첩으로 돌려서 제외할 두 난쟁이 번호의 경우를 탐색한다. 아홉 난쟁이의 수의 합 sum에서 두 난쟁이의 수를 뺐을 때 100이 나온다면 해당 두 난쟁이의 인덱스를 a, b에 담는다. 출력 for문을 돌리면서 인덱스가 a 또는 b와 같다면 출력하지 않고, 그렇지 않을 경우 출력하는 방식으로 작성했다.
728x90
반응형
'백준 알고리즘' 카테고리의 다른 글
[BOJ] 백준_23303번_이 문제는 D2입니다._C/C++ (0) | 2021.11.09 |
---|---|
[BOJ] 백준_23348번_스트릿 코딩 파이터_C/C++ (0) | 2021.11.08 |
[BOJ] 백준_1065번_한수_C/C++ (0) | 2021.11.04 |
[BOJ] 백준_10814번_나이순 정렬 _C/C++ (0) | 2021.11.04 |
[BOJ] 백준_2869번_달팽이는 올라가고 싶다_C/C++ (0) | 2021.11.01 |
@kdj :: Childev'note
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!