๋ฌธ์
https://www.acmicpc.net/problem/11931
๋ฐฑ์ค ๋ฌธ์ ์ง - 0x0E๊ฐ - ์ ๋ ฌ I
์๊ณ ๋ฆฌ์ฆ: ์ ๋ ฌ
ํ์ด
N๊ฐ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 1,000,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์ซ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์๋ ์ ๋๊ฐ์ด 1,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค. ์๋ ์ค๋ณต๋์ง ์๋๋ค.
์ฌ์ค ์ ์ ๋ ฌํ๊ธฐ ์๋ฆฌ์ฆ๋ ๋ฆฌ์คํธ์ ๊ธฐ๋ณธ ํจ์์ธ sort()๋ฅผ ์ด์ฉํ๋ฉด ๊ต์ฅํ ์ฝ๋ค.
ํ์ง๋ง ๊ทธ๋ฌ๋ค๋ฉด ๋ฌธ์ ๋ก ๋์ค์ง ์์๊ฒ ์ง?
์ฐ์ ์กฐ๊ฑด์ ๋ง์ถฐ ๋ฆฌ์คํธ๋ฅผ ์์ฑํด์ค๋ค.
์ฃผ์ด์ง๋ N๊ฐ์ ์ซ์๋ค์ ์ ๋๊ฐ์ด 1,000,000 ์ดํ์ธ ์ ์๋ค.
๊ทธ๋ผ ์ซ์์ ๊ฐ๋ฅ ๋ฒ์๋ -1,000,000 ~ 1,000,000 ์ด ๋๊ฒ ๋ค.
๊ทธ๋ฆฌ๊ณ 0 ๊น์ง ํฌํจํ๋ฉด ๊ฐ๋ฅํ ์ซ์์ ๊ฐฏ์๋ 2,000,001 ๊ฐ๊ฐ ๋๋ค.
Python์ ๋ฆฌ์คํธ ์ธ๋ฑ์ค๊ฐ์ผ๋ก ์์๋ฅผ ์ง์ ํ ์ ์๋ค.
N๊ฐ์ ์์๋ก ์ด๋ฃจ์ด์ง ๋ฆฌ์คํธ๊ฐ ์กด์ฌํ ๋, -1์ N๋ฒ์งธ ์์, -2๋ N-1๋ฒ์งธ ์์ ... ์ด๋ฐ์์ผ๋ก ๊ณ์ฐ๋๋ค.
๋ฐ๋ผ์ 0๊ณผ ์์ ์ ์ (0 ~ 1,000,000)๋ [0] ~ [1000000] ์ธ๋ฑ์ค, ์์ ์ ์ (-1,000,000 ~ -1)๋ [-1000000] ~ [-1] ์ธ๋ฑ์ค, ์ฆ [1000001] ~ [2000000] ์ธ๋ฑ์ค๊ฐ ๋๋ค.
์ด์ 2,000,001๊ฐ๋งํผ์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๊ณ , ํด๋น ์ซ์๋ฅผ ์ธ๋ฑ์ค ์ผ์ ์ฒดํฌํด๋๊ฐ๋ค.
์๋ ์ค๋ณต๋์ง ์๋๋ค๊ณ ํ์ผ๋ ๋จ์ํ True or False ๋ก๋ง ์ฒดํฌํด๋ ๋๋ค.
nums = [False] * 2000001
for _ in range(N):
n = int(input())
nums[n] = True
์ถ๋ ฅ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ํด์ผํ๋ค.
1,000,000 ๋ถํฐ -1,000,000 ๊น์ง ๊ฑฐ๊พธ๋ก ์ํํ๋ฉด์ ํด๋น ์ธ๋ฑ์ค์ ๊ฐ์ด True๋ผ๋ฉด ์ถ๋ ฅํ๋ค.
# ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ถ๋ ฅํด์ผํ๋ฏ๋ก ๊ฑฐ๊พธ๋ก ์ํ
for i in range(1000000, -1000001, -1):
if nums[i]:
print(i)
์ ์ฒด ์ฝ๋
# ๋ฉ๋ชจ๋ฆฌ: 46744KB / ์๊ฐ: 1108ms
from sys import stdin
input = stdin.readline
N = int(input())
nums = [False] * 2000001
for _ in range(N):
n = int(input())
nums[n] = True
# ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ถ๋ ฅํด์ผํ๋ฏ๋ก ๊ฑฐ๊พธ๋ก ์ํ
for i in range(1000000, -1000001, -1):
if nums[i]:
print(i)