์ด์ ์ฌ์ฌ ๋ฐฑ์ค ํ์ถํ๊ณ ํ๋ก๊ทธ๋๋จธ์ค๋ฅผ ๊ฒธํ ๋๊ฐ ์๋ค.
์๋๋ ๋ฐฑ์ค ๊ณจ๋5 ์ฐ์ผ๋ฉด ๋์ด๊ฐ ๊ณํ์ด์์ผ๋
1. ์์ฆ 1์ผ1์ปค๋ฐ๋ ์์ ๋งํผ ๋ชปํ๊ณ ์์ด์ ์ง๋๊ฐ ์ ์ ๋๊ณ
2. ๋ด๊ฐ ์ง์ํ๋ ๊ธฐ์ ์ ์ฝํ ๋ฅผ ํ๋ก๊ทธ๋๋จธ์ค๋ฅผ ํ์ฉํ์ฌ ์์ํ ์ ์์ด์ ์ ์ํ๊ณ ์
๋ณ๋ ฌ์ ์ผ๋ก ์งํํ๊ธฐ๋ก ํ๋ค.
(์ฌ์ค ํ๋ก๊ทธ๋๋จธ์ค ํฌ๋น์(?)๊ฐ ์์๋ค.. ๊ทน๋ณตํด๋ณด์๊ณ !)
๐ Problem
https://school.programmers.co.kr/learn/courses/30/lessons/42576
๐ Solution
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ ๋, ํญ์ ์ผ๋จ์ ์ด์ํ๊ฒ๋ผ๋ ํ์ด๋ณธ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ต์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋์ค๋ฉด, ๊ณต๊ฐ ์๊ฐ ๋ณต์ก๋ ๋ฑ์ ๊ณ ๋ คํ์ฌ ๋ค๋ฅธ ํ์ด๋ ์ ์ฉํด๋ณด๊ณ ์ฝ๋๋ ์งง๊ฒ ํด๋ณด๋ ค๊ณ ํ๋ ํธ์ด๋ค.
์ฒซ๋ฒ์งธ ํ์ด๋ ์ ํ์ฑ์ ๋ง์๋๋ฐ ํจ์ฉ์ฑ ํ ์คํธ์์ 0์ ์ผ๋ก ๋ถํฉ๊ฒฉํ๋ค^^
1๏ธโฃ ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ
๊ทธ๋์ ๋ค์ ์๋ํ ๋ฐฉ๋ฒ์ ๋ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํ์ฌ ํ๋์ฉ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํ์ดํด๋ณด์๋ค.
ํ๋ก๊ทธ๋๋จธ์ค์์๋ 3๋ฒ์งธ๋ก ์ธ๊ธฐ์๋ ๋ฐฉ๋ฒ์ด์๋ค.
# case 1
def solution(participant, completion):
# ๋ ๋ฆฌ์คํธ ๋ชจ๋ ์ ๋ ฌ
participant.sort()
completion.sort()
# ์๋ฃ ๋ฆฌ์คํธ์ ๊ธธ์ด๋งํผ ๋ฐ๋ณตํ์ฌ ํ์ธ
for i in range(len(completion)):
# ๊ฐ์ ์์๊ฐ ์๋๋ฉด ์ถ๋ ฅ
if participant[i] != completion[i]:
return participant[i]
# ๋ฆฌ์คํธ๋ฅผ ๋ค ๋์๋ ์์ผ๋ฉด ๋ง์ง๋ง ์์
return participant[len(participant)-1]
2๏ธโฃ ๋๋ฒ์งธ ๋ฐฉ๋ฒ
๋ฌธ์ ๋ถ๋ฅ๊ฐ ํด์๋ก ๋์ด์๋ ๋งํผ ํด์๋ก ํ์ดํด ๋ณด์!
# case 2 : ํด์
def solution(participant, completion):
answer = ''
temp = 0
dic = {}
for part in participant:
# ์ฐธ๊ฐ์๋ฅผ ํด์์ ๋ฃ์ด์ฃผ๊ธฐ
dic[hash(part)] = part
temp += int(hash(part)) # ํด์๊ฐ ํฉ๊ณ
for com in completion:
# ์์ฃผ์์ ํด์๊ฐ์ ํฉ๊ณ์์ ๋นผ์ฃผ๊ธฐ
temp -= hash(com)
# ๋๋จธ์ง ํด์๊ฐ์ด ๋ฏธ์์ฃผ์
answer = dic[temp]
return answer
# test code
print(solution(["leo", "kiki", "eden"], ["eden", "kiki"]))
3๏ธโฃ ์ธ๋ฒ์งธ ๋ฐฉ๋ฒ
๋ง์ง๋ง์ผ๋ก ๋ค๋ฅธ ์ฌ๋ ํ์ด์์ ๊ฐ์ฅ ์ธ๊ธฐ๊ฐ ์์๋ ๋ฐฉ๋ฒ!
collections์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ณ ๋ ์์๋๋ฐ, ์ด์ ๋๋ก ๊ฐ๋จํ๊ฒ ํ์ดํ ์ ์์๋ค๋.. ์ ์ฉํด์ผ๊ฒ ๋ค!
# case 3 : collections ํ์ฉ(๊ฐ์ฅ ๊ฐ๋จ!)
import collections
def solution(participant, completion):
answer = collections.Counter(participant) - collections.Counter(completion)
return list(answer.keys())[0]