๋ฐฑ์ค 4649๋ฒ
https://www.acmicpc.net/problem/4649
๋ฌธ์
ํ๊ธฐ
๋งํ ์ฌ๋์ด ๋ง์ง ์์ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ํ์ ์ฌ๋์ด ์ ์ ์์ผ๋ก ์ ๋ ฌํด์
์ฐพ์ ๋ฌธ์ ์ 11๋ฒ์งธ๋ค.
๋ฌธ์ ๋ ๋ฌธ์์ด์ ๋ฐ์ ๋ค์ ์ฒ์ ๋ฑ์ฅํ๋ ์ํ๋ฒณ์ด๋ฉด Dictionary ์์ ๋ฃ๊ณ ,
๊ฐ์ ์ํ๋ฒณ์ด ๋ค์ ๋ฑ์ฅํ๋ฉด Dictionary์์ ์ ๊ฑฐํ๋ค.
๋ง์ฝ ํ๋ ๋ฐ์ ์ ์๋ ์ฅ์๊ฐ ๊ฝ์ฐจ๋ฉด(Dictionary์ ๊ธธ์ด๊ฐ ๊ทธ๋ณด๋ค ํฌ๊ฑฐ๋๊ฐ์ผ๋ฉด )
cnt ๊ฐ์ ํ๋ ์ฆ๊ฐ์์ผ์ ํ๋์ ๋ฐ์ง ๋ชปํ ์ฌ๋์ ์๋ฅผ ์ผ๋ค.
์ต์ข ์ ์ผ๋ก cnt์ ๊ฐ์ด 0์ด๋ฉด
All customers tanned successfully๋ฅผ ์ถ๋ ฅํ๊ณ
๊ทธ๋ ์ง ์์ผ๋ฉด cnt์ ๊ฐ์ ์ถ๋ ฅํด์ฃผ๋ฉด ๋๋ ๋ฌธ์ ๋ค.
import sys
input= sys.stdin.readline
while True:
li = list(map(str,input().rstrip().split()))
li_dict = dict()
cnt = 0 #ํ๋์ ๋ฐ์ง ๋ชปํ ์ฌ๋์ ์
if len(li)==1 and li[0] == "0": #์
๋ ฅ์ด 0์ด๋ฉด ์ข
๋ฃ๋๋ค.
break
num = int(li[0])
if len(li) != 1:
li= li[1]
for i in li:
if i not in li_dict.keys() and len(li_dict) < num: #ํ๋์ ๋ฐ์ ์ ์์ผ๋ฉด
li_dict[i] = 1
elif i in li_dict.keys(): #ํ๋์ด ๋๋ ์ฌ๋์ ์ ๊ฑฐ๋๋ค.
del li_dict[i]
elif i not in li_dict.keys() and len(li_dict) >=num: #ํ๋ ์๋ฆฌ๊ฐ ์์ผ๋ฉด
cnt += 1
if cnt == 0: #๋ชป๋ฐ์ ์ฌ๋์ด ์์ผ๋ฉด
print("All customers tanned successfully.")
else:
print("{} customer(s) walked away.".format(cnt//2))