π‘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
λ¬Έμ μλμ΄λ±νκ΅ νμνμ₯ ν보λ μΌμ κΈ°κ° λμ μ 체 νμμ μΆμ²μ μνμ¬ μ ν΄μ§ μλ§νΌ μ μ λλ€. κ·Έλμ νκ΅ ννμ΄μ§μ μΆμ²λ°μ νμμ μ¬μ§μ κ²μν μ μλ μ¬μ§νμ ν보μ μλ§νΌ λ§λ€μλ€. μΆμ²λ°μ νμμ μ¬μ§μ μ¬μ§νμ κ²μνκ³ μΆμ²λ°μ νμλ₯Ό νμνλ κ·μΉμ λ€μκ³Ό κ°λ€.
ν보μ μ μ¦, μ¬μ§νμ κ°μμ μ 체 νμμ μΆμ² κ²°κ³Όκ° μΆμ²λ°μ μμλλ‘ μ£Όμ΄μ‘μ λ, μ΅μ’ νλ³΄κ° λꡬμΈμ§ κ²°μ νλ νλ‘κ·Έλ¨μ μμ±νμμ€. μ λ ₯첫째 μ€μλ μ¬μ§νμ κ°μ Nμ΄ μ£Όμ΄μ§λ€. (1≤N≤20) λμ§Έ μ€μλ μ 체 νμμ μ΄ μΆμ² νμκ° μ£Όμ΄μ§κ³ , μ μ§Έ μ€μλ μΆμ²λ°μ νμμ λνλ΄λ λ²νΈκ° λΉ μΉΈμ μ¬μ΄μ λκ³ μΆμ²λ°μ μμλλ‘ μ£Όμ΄μ§λ€. μ΄ μΆμ² νμλ 1,000λ² μ΄νμ΄λ©° νμμ λνλ΄λ λ²νΈλ 1λΆν° 100κΉμ§μ μμ°μμ΄λ€. μΆλ ₯μ¬μ§νμ μ¬μ§μ΄ κ²μ¬λ μ΅μ’ ν보μ νμ λ²νΈλ₯Ό μ¦κ°νλ μμλλ‘ μΆλ ₯νλ€. |