๋ฌธ์ ๋งํฌ
https://programmers.co.kr/learn/courses/30/lessons/42576
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์์ฃผํ์ง ๋ชปํ ์ ์
์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค. ๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์
programmers.co.kr
๋์ ํ์ด
์ผ๋ฐ์ ์ผ๋ก ๊ตฌํ๋ฐฉ์๋ง๊ณ "ํด์"๋ผ์ ์ต๋ํ dic์ ํ์ฉํด์ ํ๋ ค๊ณ ๋ ธ๋ ฅํด๋ดค๋ค. ํ์คํ ํจ์จ์ฑ, ์๊ฐ๋ณต์ก๋ ์ธก๋ฉด์์ key๊ฐ์ ํ์ฉํ hash ๋ฐฉ๋ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค!!
- hash๋ ๋ชจ๋ ๊ฐ์ ์ซ์๋ก? ์ฒ๋ฆฌ
- hash ๊ฐ์ key๊ฐ์ผ๋ก ๊ฐ๊ณ ์ด๋ฆ์ value๊ฐ์ผ๋ก ๊ฐ๋ ๋์ ๋๋ฆฌ๋ฅผ ์์ฑ
- participant ์ ์๋ ๋ชจ๋ ์ด๋ฆ์ hash๊ฐ์ hash_num์ด๋ผ๋ ๋ณ์์ ๋ํด์ค๋ค.
- participant์ ์์ง๋ง completion์๋ ์๋ ์ด๋ฆ์ ์ฐพ์์ผ ํ๊ธฐ์ participant์ ์๋ ๋ชจ๋ ๊ฐ์ ๋ํ hash_num์์ completion์ ์๋ ์ด๋ฆ๋ค์ ๋นผ์ค๋ค.
- ๊ทธ๋ผ hash_num์ ๋จ์ ์ซ์๋ ์์ฃผํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์value๊ฐ์ผ๋ก ๊ฐ๋ key๊ฐ์ด ๋ ๊ฒ
def solution(participant, completion):
dic = {}
hash_num = 0
for p in participant:
dic[hash(p)] = p #hash๊ฐ:key, p:value
hash_num += int(hash(p))
for c in completion:
hash_num -= int(hash(c))
return dic[hash_num]
๋ค๋ฅธ์ฌ๋ํ์ด
https://programmers.co.kr/learn/courses/30/lessons/42576/solution_groups?language=python3
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
ํด์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ํ๋ ค๊ณ ๋ ธ๋ ฅํ๋๋ ๋๋ ๋น์ทํ๊ฒ ํด์์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ํผ ์ฌ์ฉ์๊ฐ ๋ง์๋ค. ๋ฟ๋ฏํ๋ค ^0^ ๊ทธ๋ฆฌ๊ณ ๋๋ถ๋ถ ์ด๋ฐ ๋ฌธ์ ๋ sort() ํด์ ํจ์จ์ ๋์ธ๋ค๊ณ ํ๋ค. sortํ๋ฉด ํจ์จ์ด ๋์์ง๋...?
์ด์ธ์๋ zipํจ์, Counterํจ์๋ฅผ ์ด์ฉํด์ ํผ ํ์ด๋ฐฉ๋ฒ์ด ํจ์จ์ฑ์ ์ธ ์ธก๋ฉด์์ ๋๊ฒ ์ ์๋ฅผ ๋๊ฒ ๋ฐ์๋ค. ์๋ฌด๋ฆฌ ํด์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ง๋ง ์ญ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ผ ๋๋ฌด ๋ง๋ค!
Counter ํจ์ ์ด์ฉ
import collections
def solution(participant, completion):
answer = collections.Counter(participant) - collections.Counter(completion)
return list(answer.keys())[0]
zip ํจ์ ์ด์ฉ
def solution(participant, completion):
participant.sort()
completion.sort()
for p, c in zip(participant, completion):
if p != c:
return p
return participant[-1]
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๋ ฌ-k๋ฒ์งธ ์ (level.1) (0) | 2021.09.07 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํด์-์ ํ๋ฒํธ ๋ชฉ๋ก (level.1) (0) | 2021.09.06 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฝ์์ ๊ฐ์์ ๋ง์ (level.1) (0) | 2021.09.03 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ๋ง๋ค๊ธฐ (level.1) (0) | 2021.09.03 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๊ท ์์ด๋ ์ถ์ฒ (level 1, ์นด์นด์ค) (0) | 2021.09.02 |