[ํ๋ก๊ทธ๋๋จธ์ค] 42576 ์์ฃผํ์ง ๋ชปํ ์ ์ (+๋์ ๋๋ฆฌ get) (python ํ์ด์ฌ)
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์ ๋์ด๋๋ ์ฝ์ง๋ง, ์ตํ๋๋ฉด ์ข์ ๊ธฐ๋ฒ๋ค์ด ๋ง๋ค. ํ์ด์ฌ์ ์ฃผ๋ ฅ์ผ๋ก ์ฐ๋ ๋งํผ ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ์ ๋ง์ด ํ์ฉํด์ผ๊ฒ ๋ค.
์์ด๋์ด
participant์ ์๋ ์ด๋ฆ์ key, ์ด๋ฆ์ ์ค๋ณต ๊ฐ์๋ฅผ value๋ก ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋ค์ด์ค๋ค.
๊ทธ๋ฆฌ๊ณ completion๋ฅผ ์ํํ๋ฉฐ ์ด๋ฆ์ด ๋์ฌ ๋๋ง๋ค -1 ํด์ค๋ค.
๋ฌธ์ ์์ ํ ๋ช ์ ์ ์๋ง ์์ฃผํ์ง ๋ชปํ๋ค๊ณ ํ์ผ๋ฏ๋ก ๋์ ๋๋ฆฌ์์ value์ ๊ฐ์ด 1์ธ ๊ฑธ ์ฐพ์ return ํด์ฃผ๋ฉด ๋๋ค.
์ ์ฒด ์ฝ๋
def solution(participant, completion):
dic = {}
for p in participant:
dic[p] = dic.get(p, 0) + 1
for c in completion:
dic[c] -= 1
dnf = [k for k, v in dic.items() if v > 0]
return dnf[0]
์ฝ๋ ์ค๋ช
for p in participant:
dic[p] = dic.get(p, 0) + 1
๋์ ๋๋ฆฌ์ get๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๊น๋ํ๊ฒ key, value ์์ ์ถ๊ฐํ ์ ์๋ค.
dic.get(x)๋ ํ๋ฉด key๊ฐ x์ธ value๋ฅผ ๋ฐํํด ์ค๋ค.
์ฌ๊ธฐ์ dic.get(x, '๋ํดํธ ๊ฐ')๋, dic์์ x์ ๋์๋๋ key๊ฐ ์๋ ๊ฒฝ์ฐ ๋ํดํธ ๊ฐ์ ๋ฐํํด ์ค๋ค.
๋ฐ๋ผ์ dic[p] = dic.get(p, 0) + 1 ๋ dic์์ p๋ผ๋ key๊ฐ ์์ผ๋ฉด value + 1, p๋ผ๋ key๊ฐ ์์ผ๋ฉด dic[p] = 1์ด ๋๋ค.
์ด๋ฐ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด if๋ฌธ์ ์ฌ์ฉํ์ง ์์๋ ๊น๋ํ๊ฒ ๊ตฌํ ๊ฐ๋ฅํ๋ค.
dnf = [k for k, v in dic.items() if v > 0]
return dnf[0]
๋์ ๋๋ฆฌ์ items๋ผ๋ ๋ฉ์๋์ ๋ฆฌ์คํธ ์ปจํ๋ฆฌํจ์ ์ ์ฌ์ฉํด์ value๊ฐ 0๋ณด๋ค ํฐ ๊ฒฝ์ฐ, key์ value๋ฅผ ๋ฐํํด ์ค๋ค.
๋ฌธ์ ์กฐ๊ฑด์์ ์์ฃผ ๋ชปํ ์ ์๋ 1๋ช ์ด๋ฏ๋ก dnf[0]์ผ๋ก ์ ์ ์ด๋ฆ์ ๋ฐํํด ์ฃผ๋ฉด ๋๋ค.