๋ฌธ์ ๋งํฌ
https://programmers.co.kr/learn/courses/30/lessons/42576
๋์ ํ์ด
์ผ๋ฐ์ ์ผ๋ก ๊ตฌํ๋ฐฉ์๋ง๊ณ "ํด์"๋ผ์ ์ต๋ํ 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
ํด์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ํ๋ ค๊ณ ๋ ธ๋ ฅํ๋๋ ๋๋ ๋น์ทํ๊ฒ ํด์์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ํผ ์ฌ์ฉ์๊ฐ ๋ง์๋ค. ๋ฟ๋ฏํ๋ค ^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 |