๋ฐฑ์ค 2309๋ฒ : ์ผ๊ณฑ ๋์์ด with C++
๋ฌธ์
์๋น๋ฅผ ํผํด ์ผ๊ณฑ ๋์์ด๋ค๊ณผ ํจ๊ป ํํ๋กญ๊ฒ ์ํํ๊ณ ์๋ ๋ฐฑ์ค๊ณต์ฃผ์๊ฒ ์๊ธฐ๊ฐ ์ฐพ์์๋ค. ์ผ๊ณผ๋ฅผ ๋ง์น๊ณ ๋์์จ ๋์์ด๊ฐ ์ผ๊ณฑ ๋ช ์ด ์๋ ์ํ ๋ช ์ด์๋ ๊ฒ์ด๋ค.
์ํ ๋ช ์ ๋์์ด๋ ๋ชจ๋ ์์ ์ด "๋ฐฑ์ค ๊ณต์ฃผ์ ์ผ๊ณฑ ๋์์ด"์ ์ฃผ์ธ๊ณต์ด๋ผ๊ณ ์ฃผ์ฅํ๋ค. ๋ฐ์ด๋ ์ํ์ ์ง๊ด๋ ฅ์ ๊ฐ์ง๊ณ ์๋ ๋ฐฑ์ค๊ณต์ฃผ๋, ๋คํ์ค๋ฝ๊ฒ๋ ์ผ๊ณฑ ๋์์ด์ ํค์ ํฉ์ด 100์ด ๋จ์ ๊ธฐ์ตํด ๋๋ค.
์ํ ๋์์ด์ ํค๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฐฑ์ค๊ณต์ฃผ๋ฅผ ๋์ ์ผ๊ณฑ ๋์์ด๋ฅผ ์ฐพ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ํ ๊ฐ์ ์ค์ ๊ฑธ์ณ ๋์์ด๋ค์ ํค๊ฐ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ํค๋ 100์ ๋์ง ์๋ ์์ฐ์์ด๋ฉฐ, ์ํ ๋์์ด์ ํค๋ ๋ชจ๋ ๋ค๋ฅด๋ฉฐ, ๊ฐ๋ฅํ ์ ๋ต์ด ์ฌ๋ฌ ๊ฐ์ง์ธ ๊ฒฝ์ฐ์๋ ์๋ฌด๊ฑฐ๋ ์ถ๋ ฅํ๋ค.
์ถ๋ ฅ
์ผ๊ณฑ ๋์์ด์ ํค๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๋ค. ์ผ๊ณฑ ๋์์ด๋ฅผ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ๋ ์๋ค.
๊ตฌํ ๋ฐฉ๋ฒ
- ๋์์ด ํค๋ฅผ ์ ๋ ฅ๋ฐ์ผ๋ฉด์ ๋์์ด๋ค์ ํค๋ฅผ ๋ชจ๋ ๋ํด ๋ณ์ sum์ ์ ๋ ฅ
- sum์์ ์ด๋ค ๋ ๋์์ด(i๋ฒ์งธ ๋์์ด, j๋ฒ์งธ ๋์์ด)๋ฅผ ๋นผ์ผ 100์ด ๋์ค๋์ง ๊ตฌํจ
- 9๋ช ์ ๋์์ด ์ค i๋ฒ์งธ ๋์์ด, j๋ฒ์งธ ๋์์ด๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋์์ด์ ํค๋ฅผ heights ํ๋ ฌ์ ์ ๋ ฅ
- sort ํจ์๋ฅผ ์ด์ฉํ์ฌ ํค๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
- ์ ๋ ฌ๋ ํค๋ฅผ ์ถ๋ ฅ
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int dwarfs[9], sum = 0;
int heights[7];
for (int i = 0; i < 9; i++) {
cin >> dwarfs[i]; // ์ซ์ ์
๋ ฅ ๋ฐ๊ธฐ
sum += dwarfs[i];
}
int i, j, found = 0;
for(i = 0; i < 9; i++){ // ์ด๋ค ๋ ๋ช
์ ๋์์ด ํค๋ฅผ ๋นผ์ผ 100์ด ๋๋์ง ์ฐพ๊ธฐ
for(j = i+1; j < 9; j++){
if(sum - dwarfs[i] - dwarfs[j] == 100){
found = 1;
break;
}
}
if(found == 1){
break;
}
}
int count = 0;
for(int n = 0; n < 9; n++){ // ๊ทธ ๋ ๋ช
์ ๋์์ด๋ฅผ ์ ์ธํ๊ณ ํค ์
๋ ฅ
if(n != i && n!= j){
heights[count] = dwarfs[n];
count++;
}
}
sort(heights, heights + 7);
for(int n = 0; n < 7; n++){
cout << heights[n] << "\n";
}
return 0;
}