๋ฌธ์
N๊ฐ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 10,000,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์๋ 10,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ฅผ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
ํ์ด
import sys
input = sys.stdin.readline
N = int(input())
# ๋ชจ๋ ๋ฒ์๋ฅผ ํฌํจํ๋ ๋ฆฌ์คํธ ์ ์ธ(๋ชจ๋ ๊ฐ์ 0์ผ๋ก ์ด๊ธฐํ)
count = [0] * 10001
# ๊ฐ ๋ฐ์ดํฐ์ ํด๋นํ๋ ์ธ๋ฑ์ค์ ๊ฐ ์ฆ๊ฐ
for i in range(N):
count[int(input())] += 1
# ๋ฆฌ์คํธ์ ๊ธฐ๋ก๋ ์ ๋ ฌ ์ ๋ณด ํ์ธ
for i in range(1, 10001):
while count[i]:
print(i)
count[i] -= 1
์ง๊ณ ๋์ด๊ฐ์ผ ํ ๋ถ๋ถโโ
๋ค์๊ณผ ๊ฐ์ด ์ ์ ๋ ฌํ๊ธฐ 2 ๋ฌธ์ ์ ๋๊ฒ ์ ์ฌํ๋ค๋ผ๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
ํ์ง๋ง ๊ฐ์ ๋ต์์ ์ ์ถํ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ ์ค๋ต ํ์ ์ ๋ฐ๊ฒ ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ ํ ํฌ๊ธฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค.
์ ์ ๋ ฌํ๊ธฐ 3 ๋ฌธ์ ์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ 10000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์๋ก ํ์ ๋์ด ์๊ณ ,
๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ๋ง์ด ์ค๋ณต๋์ด ์์ด ๊ณ์ ์ ๋ ฌ์ ์ด์ฉํ์ฌ ํธ๋๊ฒ ์ ์ ํ๋ค.
๊ณ์ ์ ๋ ฌ์ ๊ณต๊ฐ ๋ณต์ก๋๋ O(N + K)์ด๋ค.
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/BOJ] 1181 - ๋จ์ด ์ ๋ ฌ (0) | 2022.10.07 |
---|---|
[JavaScript/BOJ] 1018 - ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (0) | 2022.09.17 |
[Python] ๋ฐฑ์ค 2751๋ฒ ์ ์ ๋ ฌํ๊ธฐ 2 (0) | 2022.08.08 |
[Node.js/JavaScript] ๋ฐฑ์ค 1157๋ฒ ๋จ์ด ๊ฐ์ (0) | 2022.07.05 |
[Node.js/JavaScript] ๋ฐฑ์ค 10809๋ฒ ์ํ๋ฒณ ์ฐพ๊ธฐ (0) | 2022.07.03 |