๐กsolutions )
๐ฌ defaultdict ์ฌ์ฉ -> collections ๋ชจ๋์ defaultdict๋ ๋์
๋๋ฆฌ์ ๊ฑฐ์ ๋น์ทํ์ง๋ง key๊ฐ์ด ์์ ๊ฒฝ์ฐ ๋ฏธ๋ฆฌ ์ง์ ํด ๋์ ์ด๊ธฐ(default)๊ฐ์ ๋ฐํํ๋ ํน์ง์ด ์๋ค. -> ๊ทธ๋์ ์กฐ๊ฑด๋ฌธ์ ํตํด get()๋ฉ์๋๋ก ํค๊ฐ์ด ์๋์ง ํ์ธํ์ง ์์๋ ๋๋ ํธ๋ฆฌํจ์ด ์๋ค.
๐ฌ ๋ฐ๋ณต๋ฌธ์์ ์ถ์ฒ ๋ฆฌ์คํธ์ ์์๋ค์ ํ๋์ฉ ๋ฝ์์ ์ฌ์งํ ๋ฆฌ์คํธ(photo)์ ์๋ ์ง ๋จผ์ ํ์ธํ๊ธฐ
๐ฌ ๋น์ด์๋ ์ฌ์งํ ์ ๋ฌด์ ๋ฐ๋ผ ๋ถ๊ธฐ ์ฒ๋ฆฌ -> ๋น์ด์๋ ์ฌ์งํ์ด ์๋ค๋ฉด photo ๋ฆฌ์คํธ์ ๊ฐ์ฅ ์ ์ ์ถ์ฒ์ ๋ฐ์ ๋ฒํธ์ ํ์์ ์ฐพ๊ธฐ -> ํด๋น ๋ฒํธ์ ํ์ photo ๋ฆฌ์คํธ์์ ์ญ์ , ๋์์ r_dic์์๋ ์ญ์ ํ์ฌ ์ถ์ฒํ์ ์ด๊ธฐํ(0)
๐ซcode )
from collections import defaultdict
r_dic = defaultdict(int)
n = int(input())
r_cnt = int(input())
r_lst = input().split(' ')
photo = []
for item in r_lst:
r_dic[item] += 1
if item in photo:
continue
elif len(photo) < n: # ๋ค ์ฐจ์ง ์์ ์ํ
photo.append(item)
elif len(photo) == n: # ๊ฝ ์ฐจ ์๋ ์ํ
min_v = 10000
for k in photo:
if r_dic[k] < min_v:
min_v = r_dic[k]
d = k
else:
photo.remove(d)
del(r_dic[d])
photo.append(item)
photo = list(map(int, photo))
photo.sort()
print(*photo)
๐ description )
๋ฌธ์ ์ถ์ฒ : www.acmicpc.net/problem/1713
1713๋ฒ: ํ๋ณด ์ถ์ฒํ๊ธฐ
์ฒซ์งธ ์ค์๋ ์ฌ์งํ์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. (1≤N≤20) ๋์งธ ์ค์๋ ์ ์ฒด ํ์์ ์ด ์ถ์ฒ ํ์๊ฐ ์ฃผ์ด์ง๊ณ , ์ ์งธ ์ค์๋ ์ถ์ฒ๋ฐ์ ํ์์ ๋ํ๋ด๋ ๋ฒํธ๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ถ์ฒ๋ฐ์ ์์๋๋ก ๏ฟฝ
www.acmicpc.net
๋ฌธ์ ์๋์ด๋ฑํ๊ต ํ์ํ์ฅ ํ๋ณด๋ ์ผ์ ๊ธฐ๊ฐ ๋์ ์ ์ฒด ํ์์ ์ถ์ฒ์ ์ํ์ฌ ์ ํด์ง ์๋งํผ ์ ์ ๋๋ค. ๊ทธ๋์ ํ๊ต ํํ์ด์ง์ ์ถ์ฒ๋ฐ์ ํ์์ ์ฌ์ง์ ๊ฒ์ํ ์ ์๋ ์ฌ์งํ์ ํ๋ณด์ ์๋งํผ ๋ง๋ค์๋ค. ์ถ์ฒ๋ฐ์ ํ์์ ์ฌ์ง์ ์ฌ์งํ์ ๊ฒ์ํ๊ณ ์ถ์ฒ๋ฐ์ ํ์๋ฅผ ํ์ํ๋ ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค.
ํ๋ณด์ ์ ์ฆ, ์ฌ์งํ์ ๊ฐ์์ ์ ์ฒด ํ์์ ์ถ์ฒ ๊ฒฐ๊ณผ๊ฐ ์ถ์ฒ๋ฐ์ ์์๋๋ก ์ฃผ์ด์ก์ ๋, ์ต์ข ํ๋ณด๊ฐ ๋๊ตฌ์ธ์ง ๊ฒฐ์ ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ์ฒซ์งธ ์ค์๋ ์ฌ์งํ์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. (1≤N≤20) ๋์งธ ์ค์๋ ์ ์ฒด ํ์์ ์ด ์ถ์ฒ ํ์๊ฐ ์ฃผ์ด์ง๊ณ , ์ ์งธ ์ค์๋ ์ถ์ฒ๋ฐ์ ํ์์ ๋ํ๋ด๋ ๋ฒํธ๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ถ์ฒ๋ฐ์ ์์๋๋ก ์ฃผ์ด์ง๋ค. ์ด ์ถ์ฒ ํ์๋ 1,000๋ฒ ์ดํ์ด๋ฉฐ ํ์์ ๋ํ๋ด๋ ๋ฒํธ๋ 1๋ถํฐ 100๊น์ง์ ์์ฐ์์ด๋ค. ์ถ๋ ฅ์ฌ์งํ์ ์ฌ์ง์ด ๊ฒ์ฌ๋ ์ต์ข ํ๋ณด์ ํ์ ๋ฒํธ๋ฅผ ์ฆ๊ฐํ๋ ์์๋๋ก ์ถ๋ ฅํ๋ค. |