[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์ - python
https://school.programmers.co.kr/learn/courses/30/lessons/42576
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์ค๊ณ ๋ฐฉ๋ฒ
completion ๋๋ฉด์ participant์ i๊ฐ ์์ผ๋ฉด completion ๋ฐฐ์ด์์ i ์ง์์ฃผ๊ณ , ๋ง์ง๋ง ๋จ์ participant๋ฅผ ๋ฐํํด์ฃผ๋ฉด ๋๋ค๊ณ ์๊ฐํ์
๊ทผ๋ฐ ์ด๋ ๊ฒ ํ๋ฉด ์๊ฐ๋ณต์ก๋๊ฐ O(n^2) ์ด๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด๊ณผ๋ฐ์
๋ฌธ๋ python ๋ด์ฅ sort() ํจ์๊ฐ O(nlogN)์ธ ๊ฒ ๊ธฐ์ต๋ฌ์
๋ด์ฅํจ์ ์ฌ์ฉํด์ ์ ๋ ฌํ ๋ค, ์์๋๋ก ๋นผ๋ฉด ๋๊ฒ ๊ตฌ๋ ์๊ฐํจ
์ฝ๋
์๊ฐ์ด๊ณผ
def solution(participant, completion):
for i in completion:
if i in participant:
participant.remove(i)
return participant[0]
๋์ ํ์ด์ฝ๋
from collections import deque
def solution(participant, completion):
participant.sort()
completion.sort()
completion.append('0')
for i in range(len(participant)):
if participant[i] != completion[i]:
return participant[i]
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]
ํด์ฑ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ ์ฝ๋
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
์ฐธ๊ณ
Python์ sort() ๋ด์ฅ ํจ์์ ์๊ฐ ๋ณต์ก๋๋ ๋ณดํต O(n log n)์
Python์ sort() ํจ์๋ Timsort๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํจ
Timsort๋ ๋ณํฉ ์ ๋ ฌ(Merge Sort)๊ณผ ์ฝ์ ์ ๋ ฌ(Insertion Sort)์ ์กฐํฉ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ์ต์ ์ ๊ฒฝ์ฐ์๋ O(n)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ํ๊ท ์ ์ธ ๊ฒฝ์ฐ์๋ O(n log n)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง
Timsort๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋๋๊ณ , ๊ฐ ๋ถ๋ถ์ ๋ํด ์ ๋ ฌ ํ ๋ณํฉํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ์ ์ฒด ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํจ. ์ ๋ ฌ๋ ์์ ๋ถ๋ถ ๋ฆฌ์คํธ๋ค์ ๋ณํฉํ๋๋ฐ ํ์ํ ์๊ฐ์ด O(n)์ด๊ณ , ๋ถํ ํ๋ ๊ณผ์ ์ด O(log n)๋ฒ ๋ฐ์ํ๋ฏ๋ก, ์ต์ข ์ ์ผ๋ก ํ๊ท ์ ์ธ ์๊ฐ ๋ณต์ก๋๋ O(n log n)์ด ๋๋ ๊ฒ
ํ์ง๋ง, ๋ฆฌ์คํธ์ ํฌ๊ธฐ๊ฐ ์์ ๊ฒฝ์ฐ์๋ ์ฝ์ ์ ๋ ฌ๊ณผ ์ ์ฌํ ์์ ํฌ๊ธฐ์ ๋ถ๋ถ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํ๋ ๊ณผ์ ์ด ๋ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์, ์ต์ ์ ๊ฒฝ์ฐ์๋ O(n)์ ์ฑ๋ฅ์ ๋ณด์ฌ์ค ์ ์์