์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- fe
- javascript
- ํ๋ก ํธ์๋
- node.js
- ํฌ๋กค๋ง
- ๊ทธ๋ฆฌ๋
- ๋ฐฑ์ค
- mongodb
- KDT
- HTML
- ์ฝ๋ฉ
- ํ ์ดํ๋ก์ ํธ
- ์๊ณ ๋ฆฌ์ฆ
- error
- ๋ ธ๋ง๋์ฝ๋
- Python
- heapq
- ์ฝ๋ฉ์ ํ
- ๊ฐ๋ฐ
- Til
- ํ์ด์ฌ
- ํ๋ก๊ทธ๋๋จธ์ค
- JS
- ๋ชจ๊ฐ์ฝ
- ๊ตญ๋น์ง์
- ํ๋ก์ ํธ
- ์ฝ๋ฉํ ์คํธ
- ๋๋ฆผ์ฝ๋ฉ
- CSS
- react
- Today
- Total
๐ฑ → ๐ณ
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์ - python ๋ณธ๋ฌธ
https://school.programmers.co.kr/learn/courses/30/lessons/42576
์ค๊ณ ๋ฐฉ๋ฒ
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)์ ์ฑ๋ฅ์ ๋ณด์ฌ์ค ์ ์์
'Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋งต๊ฒ - python (0) | 2023.08.02 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ๋ฅ๊ฐ๋ฐ - python (0) | 2023.08.02 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ์ผ ๋๋ฒ - python (0) | 2023.08.02 |
[ํ๋ก๊ทธ๋๋จธ์ค] JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ - python (0) | 2023.07.25 |
[Python] ํ ์๋ฃ๊ตฌ์กฐ / ํํ(heapq) / ํ์ด์ฌ์์ heapq ๋ชจ๋ ์ฌ์ฉ (1) | 2023.05.30 |