๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/2309
ํ๊ธฐ ์ ์ ์์ด๋์ด
๋ฌธ์ ์์ ์ฃผ์ด์ง ์ ๋ณด๋ ์ผ๊ณฑ ๋์์ด์ ํค๋ ๋ฌด์กฐ๊ฑด 100์ด๋ผ๋ ๊ฒ, ์ ๋ ฅ์ ๋์์ด๋ค์ ๊ฐ ํค๋ฅผ ์ํ ๋ฒ ์ ๋ ฅ๋ฐ์์ผ ํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํ๋ค.
-> ์ด๋ฌ๋ฉด ์ํ ๋์์ด๋ค์ ํค๋ฅผ ๋ค ๋ํ๋ค๋ฉด 100์ด ๋น์ฐํ ๋๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๊ทธ๋ฌ๋ฉด ์์ฐจ์ ์ผ๋ก ๋ํ์ ๋ ์ธ์ 100์ด ๋๋์ง๋ฅผ ์์์ผ ํ ํ ๋ฐ.. ์ฝ๊ฐ ๊ฐ์ด ์ค๋ ๋ฏ ์ ์ค๋ ๋ฏํ๋ค. ๋ง์ฝ ์ ๋ ฌ์ ํ๊ฒ ๋๋ค๋ฉด ์ ๋ ฌ ํ, ์์ ํค๋ถํฐ ๋ํ๋๋ผ๋ 100์ผ๋ก ๋ฑ ์ ๋จ์ด์ง๋ ์๊ฐ์ด ์ฌ ๊ฑฐ๋ ๋ง์ด์ง.. ์ผ๋จ ์ด๊ฒ์ ๊ฒ ํด๋ณด์๋ ์๊ฐ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๊ฒ ๋์๋ค..!
๊ณผ์
์ฐ์ ์ ์ํ ๋์์ด์ ํค๋ค์ ์ ์ฅํด๋ ๊ณต๊ฐ์ด ํ์ํ๋๊น, 9์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ๋ฐฐ์ด์ ์์ฑํด ์ฃผ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋์์ด์ ํค๋ฅผ ๋ค ๋ํ ๊ฐ์ ์ ์ฅํด ์ค ๋ณ์๋ ๋ง๋ค์ด์ฃผ์๋ค.
์ ๋ ฅ์ ๋ฐ์ผ๋ฉด์ ํค์ ํฉ๋ ๊ฐ์ด ๊ณ์ฐํด์ฃผ์๋๋ฐ. ์ฌ๊ธฐ๊น์ง ํ๊ณ ๋์ ์ด์ ๊ฐ์ง ๋์์ด ๋ ๋ช ์ ์ด๋ป๊ฒ ์ฐพ์๊น ๊ณ ๋ฏผ์ ํ๋ค. ํ๊ธฐ ์ ์์ด๋์ด์ฒ๋ผ ํด๋ณด๋ค๊ฐ ์ ์ ๋ผ์ ๋จธ๋ฆฌ๋ฅผ ๋น์ฐ๊ณ ๋ค์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐพ์๋ค. ํค์ ํฉ์ ์ด์ฉํ๋ฉด ์ข์ ํ ๋ฐ.. ํ๊ณ ๋ ์ค๋ฅธ ์๊ฐ์ด ๊ฐ์ง ๋์์ด a, b๊ฐ ์๋ค ์น๋ฉด ๊ฑ๋ค ํค ํฉ์ ๋ชจ๋ ๋์์ด์ ํค ํฉ์์ ๋นผ๋ฉด ๋ฌด์กฐ๊ฑด 100์ด ๋ ๊ฑฐ๋ผ๋ ๊ฒ์!!!!! ์๊ฐํ๋ค.
๊ทธ๋์ ๋๋ ์กฐ๊ธ ๋ฌด์ํ ๋ฐฉ๋ฒ ๊ฐ๊ธฐ๋ ํ์ง๋ง.. ์ด๊ฑฐ ๋ง๊ณ ์๊ฐ์ด ๋๋๊ฒ ์์๋ค! for๋ฌธ์ ์ผ๋จ ๋ ๋ฒ ์ค์ฒฉํด์ ๋๋ฆฌ๊ณ 0๋ฒ์งธ์ 1~8๋ฒ์งธ ๊ทธ๋ฆฌ๊ณ 1๋ฒ์งธ 2~8๋ฒ์งธ ์ด๋ฐ ์์ผ๋ก ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค ํ์ํด์ (๋ชจ๋ ๋์์ด์ ํค ํฉ - 100) ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์๋ค.
๊ทธ๋ฌ๋ฉด ์ด์ ๋ ์ด๋ป๊ฒ ์๋ค ๋นผ๊ณ ๋๋จธ์ง๋ค์ ์ถ๋ ฅํ์ง ํ๋ค๊ฐ, ์ฒ์๋ถํฐ ์ ๋ ฌ์ ๊ฝํ์์ด์ ใ ใ ใ ์ด๊ฒ๋ ์ ๋ ฌ์ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋จ ์๊ฐ์ด ๋ค์ด์, ๋ด๊ฐ ์ฐพ์ ๊ฐ์ง ๋์์ด๋ค ์ธ๋ฑ์ค์ ์์๋ฅผ 0์ผ๋ก ๋ฐ๊ฟ์ฃผ์๋ค. ๋์์ด์ ํค๊ฐ 0์ธ ๊ฒฝ์ฐ๋ ์์ผ๋๊น, ๊ฐ์ 0์ผ๋ก ๋ฐ๊ฟ๋๊ณ ์ ๋ ฌํ๋ฉด ๋ฌด์กฐ๊ฑด ๋์์ด์ ํค๋ฅผ ๋ด์ ๋ฐฐ์ด์ 0๋ฒ์งธ, 1๋ฒ์งธ๋ ๊ฐ์ง ๋์์ด๋ค์ผ ๊ฑฐ๋๊น!
์ด์ฐจํผ ์ถ๋ ฅ์ ์ค๋ฆ์ฐจ์์ผ๋ก ํ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ๋ ฌ์ ํ๊ฑด ํ์ํ ์ ํ์ด์๋ค! ์จ๋ 2๋ฒ์งธ ๋์์ด๋ถํฐ 7๋ช ์ ๋์์ด๋ค์ ๋ณด๊ธฐ ์ข๊ฒ ์ถ๋ ฅํ๋๋ ํต๊ณผ๊ฐ ์๋จ. ์ด์ํ ๊ฑฐ ๋์ด ใ กใ ก
์ ๋ญ๊ฐ for๋ฌธ ๋ถ๋ถ์์ ์๋ชป๋ ๊ฒ ์๋ ๊ฒ ๊ฐ์๋ค. ๋ด๊ฐ ๊ฐ์ง ๋์์ด๋ฅผ ์ฐพ์ผ๋ฉด ์ถ๋ ฅ์ด ๋๊ณ ๋๋์ผ ํ๋๋ฐ, ๋์ด ๋์ง ์๊ณ ๊ณ์ ํ์ํ๋ค๊ฐ ๋ (๋ชจ๋ ๋์์ด์ ํค ํฉ - 100)๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์์ ์ถ๋ ฅ์ด ๋ ๋๋ ๊ฒ ๊ฐ์๋ค.
๋๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋.. boolean์ผ๋ก ์ฐพ์๋์ง ๋ชป ์ฐพ์๋์ง๋ฅผ ํ๋จํ๋๋ก ํ๋ ์๋ฐ์ ๋ ์ค๋ฅด์ง ์์๋ค. ๊ทธ๋์ ๊ฐ์ง ๋์์ด๋ฅผ ์ฒ์ ์ฐพ์์ ๋ ๋์์ด๋ฅผ ์ฐพ์์์ ํ์ํ๊ธฐ ์ํด true๋ก ๋ฐ๊ฟ์ฃผ๊ณ for๋ฌธ๋ง๋ค ์ด๊ฑฐ๋ break; ๋ฅผ ๋ฌ์์ for๋ฌธ์ ๋ฉ์ท๋ค. ์ด๋ฌ๋๋
ํต๊ณผํ๋ค!
System.exit(0): System ํจ์์ exit ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ ์ ์์!!
๋ค๋ง ์ฃผ์์ฌํญ์
- ์ดํ์ ์์ ์ด ๋ณ๋๋ก ์กด์ฌํ์ง ์์์ผ ํ๋ค!
- ์๋ํ๋ฉด ์ฆ์ ํด๋น ํ๋ก์ธ์ค๊ฐ ํ๊ดด๋๋ ๊ตฌ์กฐ๋ก ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋จ์ ๋ท๋ถ๋ถ์ ์ ์๋์ด ์์ ์ ์๋ ์์์ ํด์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์ฝ๋๋ค์ด ์คํ๋์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค.
- ๋ค์ ์๋ฌด๊ฒ๋ ์์ ๋ ๋นผ๊ณ ๋ ๊ฐ๊ธ์ ์ฌ์ฉ์ ํผํ์..
์ข ์ด๋ ค์ ๋ค ใ ใ ๊ณ ๋ฏผํ ์๊ฐ์ด ๋ง์ด ํ์ํ๋ค ใ ใ .. ๊ทธ๋ฆฌ๊ณ ๋ญ๊ฐ ๊ฐ์ ์ฝ๋? ๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฐ๋ ๊ฑด ๋ญ๊ฐ ๋ถํธํ๋ฐ.. ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๊ฒ ์ง๋ง ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ฑฐ ์ผ๋ฏ! ์จ๋ ํ์์ผ๋๊น ๋ ์์ ์นญ์ฐฌํ ๊ฒ์~
์๊ฐ ๋ณต์ก๋
:O(n^3) -> O(1)
๋ค๋ฅธ ๊ฑด ๋ณผ ๊ฒ๋ ์์ด.. 3์ค for๋ฌธ์ด ์๊ธฐ ๋๋ฌธ์ ์ด๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ค! ๋ผ๊ณ ํ ๋ป..
๋ฐ๋ณต๋ฌธ์ด for(int i = 0; i < n; i++) ์ด๋ฐ์์ผ๋ก n์ ๊ฐ์ ๋ฐ๋ผ์ ๋ฐ๋ณตํ๋ ํ์๊ฐ ์ ํด์ง๋ ๊ฒฝ์ฐ๊ฐ 3๋ฒ ์ค์ฒฉ๋์์ผ๋ฉด O(N^3) ์ด ๋ง๋๋ฐ, ์ฌ๊ธฐ์๋ ๋ฑ ๊ณ ์ ๋์ด์์ด์ O(1)์ด๋ค. ใ ใ ใ ใ
์ ์ฒด ์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class 2309 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] dwarf = new int[9];
int totalHeight = 0;
boolean findRealDwarf = false;
for (int i = 0; i < 9; i++) {
dwarf[i] = Integer.parseInt(br.readLine());
totalHeight += dwarf[i];
}
for (int i = 0; i < 8; i++) {
for (int j = i + 1; j < 9; j++) {
if (dwarf[i] + dwarf[j] == totalHeight - 100) {
dwarf[i] = dwarf[j] = 0;
Arrays.sort(dwarf);
for (int k = 2; k < 9; k++) {
System.out.println(dwarf[k]);
}
findRealDwarf = true;
}
if (findRealDwarf) {
break;
}
}
if (findRealDwarf) {
break;
}
}
}
}