๋ฌธ์
ํด๋น ํฌ์คํ ์ ๋ฐฑ์ค์ 2751๋ฒ ์ ์ ๋ ฌํ๊ธฐ 2 ์ ์ ๊ทผ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ๊ธ ์ ๋๋ค.
์ ๋ต ์์ค ์ฝ๋๋ฅผ ํ์ธํ์๋ ค๋ฉด solve url ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผํด์ผ ํ๋์ง๋ฅผ ๋จผ์ ์๊ฐํด๋ณด์.
ํด๊ฒฐ๋ฒ
์ด ๋ฌธ์ ๋ ๊ธฐ๋ณธ์ ์ธ ์ ๋ ฌ์์๋ ๋ถ๊ณ ํ๊ณ ์ ๋ต๋ฅ ์ด 30%๋ ๋๋ ๋ฌธ์ ์ด๋ค.
์๋ง ์ผ๋ฐ์ ์ธ STL์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ์ฌ๋๋ค์ด ๋ง์ด ํ๋ ธ์ ๊ฒ ๊ฐ๋ค.
์ ๊ทผ๋ฒ
์ ๋ ฌ์ ํ๋ผ๊ณ ์ด๋ฏธ ๋ฌธ์ ์์ ์ฃผ์ด์ก์ง๋ง ๋ฌธ์ ์ ์ค๋ต๋ฅ ์ด ๋๋ค.
์
๋ ฅ์ ๋ณด๊ณ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ง ์๊ฐํด๋ณด์.
์ฐ์ ์์ ๊ฐ์ N์ 1,000,000
์ด๊ณ ์๊ฐ ์ ํ์ด 2์ด๋ฉด ๋๋ต 2์ต ~ 10์ต
๊น์ง, ์์ ํ๊ฒ 2์ต ~ 5
์ต ๊น์ง๋ผ๊ณ ์ก์.
๊ทธ๋ผ O(N^2) ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๋ฉด, 1,000,000,000,000
์ผ๋ก ์ ๋ ์ ํ์๊ฐ ๋ด์ ํต๊ณผํ ์ ์์ง๋ง, ์ต์ O(N log N)์ธ ์๊ณ ๋ฆฌ์ฆ์ 1,000,000 x 6
์ผ๋ก ๊ฐ๋ณ๊ฒ ํต๊ณผํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ 4๊ฐ์ง ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ๋ค์ ํ์ธํด๋ณด์.
- ์ ํ ์ ๋ ฌ
- ์ฝ์ ์ ๋ ฌ
- ํต ์ ๋ ฌ
- ๊ณ์ ์ ๋ ฌ
์ ๋ ฅ์ด 100๋ง์ด๋ฉด ํ๊ท ์ ์ธ ์๊ฐ ๋ณต์ก๋๊ฐ O(N^2)์ธ Selection, Insertion sort๋ ๋น์ฐํ ํต๊ณผํ์ง ์์ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
๊ทธ๋ผ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ํต ์ ๋ ฌ, ๊ณ์ ์ ๋ ฌ์ด ์๋ค.
ํ์ง๋ง ์ฃผ์ํด์ผํ ๊ฒ์ด ํต ์ ๋ ฌ์ ๋ชจ๋ ์ํฉ์์ n log n
์ ๋ณต์ก๋๋ฅผ ๊ฐ๋ ๊ฒ์ด ์๋๋ค.
๋ฐ์ดํฐ๊ฐ ๊ฑฐ์ ์ ๋ ฌ๋ ๊ฒฝ์ฐ์๋ n log n์ด ์๋๋ผ n^2์ด ๊ฑธ๋ฆฌ๊ฒ ๋๋ค.
๊ทธ๋์ ์กฐ์ฌํด์ผ ํ๋๋ฐ, ์ด๋ฒ ์ํฉ์์๋ ๋น ๋ฅธ ์
์ถ๋ ฅ๊ณผ ํต ์ํธ๋ฅผ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์ด๋ณผ ๊ฒ์ธ๋ฐ, ๋ ํ์คํ ํ๊ธฐ ์ํด์๋ ์กฐ๊ฑด์ด ๋ถํฉ๋๋ ํน์ ํ ์ํฉ์์ O(n)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋ ๊ณ์ ์ ๋ ฌ(์นด์ดํ
์ํธ)๋ฅผ ์ด์ฉํด์ ํธ๋ ๊ฒ์ด ๋ ๋ฐ๋์ง ํ๋ค.
์ ๋ต ์ฝ๋
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
list.add(Integer.parseInt(br.readLine()));
}
Collections.sort(list);
for(int i : list) {
bw.write(i + "\n");
}
bw.flush();
bw.close();
}
}
๋ฌธ์ ํ๊ณ
์ด๋ฒ ๋ฌธ์ ๋ ๊ฝค ์ค๋ ์ ์ ํต๊ณผํ์ง ๋ชปํ ๋ฌธ์ ์๋ค.
์นด์ดํ ์ํธ๋ฅผ ์ด์ฉํด์ ํ๊ณ ์ถ์์ผ๋ ๊ณ์ํด์ ํ๋ฆฐ ๋ฌธ์ ์์๋ค.
์ง๊ธ์ ๋น์ฅ ์ฝ๋ฉํ ์คํธ๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์์ผ๋, ๋ค์์ ์ฌ์ ๊ฐ ์๊ธฐ๋ฉด ๊ผญ ๋ค์ ๋ณผ ๋ฌธ์ ์ ์ฌ๋ ค๋์๋ค.
๋๊ธ