[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์/Python - Lv.1
โ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=python3
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก์ Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค.
๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด completion์ด ์ฃผ์ด์ง ๋, ์์ฃผํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- ๋ง๋ผํค ๊ฒฝ๊ธฐ์ ์ฐธ์ฌํ ์ ์์ ์๋ 1๋ช ์ด์ 100,000๋ช ์ดํ์ ๋๋ค.
- completion์ ๊ธธ์ด๋ participant์ ๊ธธ์ด๋ณด๋ค 1 ์์ต๋๋ค.
- ์ฐธ๊ฐ์์ ์ด๋ฆ์ 1๊ฐ ์ด์ 20๊ฐ ์ดํ์ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์ฐธ๊ฐ์ ์ค์๋ ๋๋ช ์ด์ธ์ด ์์ ์ ์์ต๋๋ค.
โ๐ปํ์ด
ํ์ด์ฌ์ ๊ฒฝ์ฐ ๋์ ๋๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ํ ์ ์๋ค.
๋จผ์ ๋๋ช ์ด์ธ์ด ์๋ค๊ณ ํ์๊ธฐ ๋๋ฌธ์ ๋์ ๋๋ฆฌ๋ฅผ ์ด์ฉํด ๊ฐ ์ฐธ์ฌ์ ์ด๋ฆ๋ณ๋ก ๋ช๋ช ์ธ์ง ์ผ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฃผํ ์ฌ๋ ์ค์ 1 ์ด์์ด๋ฉด 1 ๋นผ๊ณ 1๋ช ๋ง ์๋ค๋ฉด ์์ ๋์ ๋๋ฆฌ์์ ์ ๊ฑฐํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ์์ ๋ณด๋ฉด ๋จ ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ์์ฃผํ๋ค๊ณ ํ์ผ๋ฏ๋ก ๋์ ๋๋ฆฌ์๋ ๋ฌด์กฐ๊ฑด ํ๋ช ๋ง ๋จ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋์ ๋๋ฆฌ์ key๋ง ๊ฐ์ ธ์ค๋๋ฐ ์ด ๋ ๋์ ๋๋ฆฌ ํํ๋ก ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ list๋ก ๋ณํํด์ ์ธ๋ฑ์ค ์์น๊ฐ 0์ธ ๊ฒ์ ๋ฐํํ๋ฉด ๋๋ค.
๐ป์ฝ๋
๋ด ํ์ด
def solution(participant, completion):
dic = {}
for p in participant:
if p not in dic:
dic[p] = 1
else:
dic[p] += 1
for c in completion:
if dic[c] > 1:
dic[c] -= 1
else:
dic.pop(c)
return list(dic.keys())[0]
๋ค๋ฅธ ์ฌ๋ ํ์ด
import collections
# from collections import Counter
def solution(participant, completion):
answer = collections.Counter(participant) - collections.Counter(completion)
return list(answer.keys())[0]
# return list(Counter(participant) - Counter(completion))[0]
๐ํ๊ธฐ
๋ค๋ฅธ ์ฌ๋๋ค์ collections์ ์๋ Counter๋ฅผ ์ด์ฉํด์ ํ์๋ค.
Counter์ ๋ํด ์ฐพ์๋ณด๋ Counter๋ ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๋ฐฐ์ด์ ์ธ์๋ก ๋ฐ์ ๊ฐ ์์๊ฐ ๋ช ๋ฒ์ฉ ๋์ค๋์ง๊ฐ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ด์ฌ์ ๊ธฐ๋ณธ ์๋ฃ๊ตฌ์กฐ์ธ ๋์ ๋๋ฆฌ๋ฅผ ํ์ฅํ๊ณ ์์ด์ ์ฌ์ ์์ ์ ๊ณตํ๋ API๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋ค๊ณ ํ๋ค.
๊ทธ๋ฐ๋ฐ Counter๋ฅผ ์ฌ์ฉํ์ ๋๊ฐ ์๊ฐ์ด ๋ ๊ฑธ๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ๋ ๋ง์ด ์ฐจ์งํ๋ค. ๋ฌผ๋ก ์์ฒญ๋๊ฒ ํฐ ์ฐจ์ด๋ ์๋์ง๋ง...