문제: https://www.acmicpc.net/problem/2309
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int total = 0;
int n[9];
for (int i = 0; i < 9; i++)
{
cin >> n[i];
total += n[i];
}
sort(n, n + 9);
int sub = total - 100;
for (int i = 0; i < 9; i++)
{
for (int j = i + 1; j < 9; j++)
if (n[i] + n[j] == sub)
{
for (int k = 0; k < 9; k++)
{
if (k == i || k == j)
continue;
cout << n[k] << '\n';
}
return 0;
}
}
}
출력 결과를 정렬해서 출력해야 하기 때문에 일단 배열로 난쟁이들의 키를 입력받았다.
정렬은 sort함수를 사용했다.
total 변수를 선언해서 난쟁이 키의 총합을 저장했는데, 이유는 총합에서 100을 뺀만큼이 가짜 난쟁이들의 키의 합이기 때문이다.
total에서 100을 뺀 값을 sub에 저장하고, 배열을 순회하면서 합이 sub이 되는 인덱스를 찾았다.
합이 sub인 지점에 이르면 해당 인덱스를 제외하고 배열을 순서대로 출력했다.
결과를 출력한 후에는 return으로 함수를 종료하는 것을 잊으면 안된다^^
'알고리즘' 카테고리의 다른 글
[BOJ] 2577: 숫자의 개수 (0) | 2022.09.22 |
---|---|
[BOJ] 2562: 최댓값 (1) | 2022.09.21 |
[BOJ] 2490: 윷놀이 (1) | 2022.09.21 |
[BOJ] 10871: X보다 작은 수 (0) | 2022.09.21 |
[HackerRank] Mini-Max Sum (0) | 2021.11.21 |