ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จ๐ป ์ฝ๋ฉํ
์คํธ/ํ๋ก๊ทธ๋๋จธ์ค
ํ๋ก๊ทธ๋๋จธ์ค: ๊ตฌ๋ช ๋ณดํธ
dirmathfl 2020. 9. 3. 22:23728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋๋ค์ ๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ด์ฉํ์ฌ ํ์ถ์ํค๊ณ ์ ํ ๋, ์ต์ํ์ ๊ตฌ๋ช ๋ณดํธ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ์ ์ ํ ์กฐ๊ฑด์ผ๋ก๋ ๋ณดํธ์๋ ์ต๋ 2๋ช ๋ง ํ์นํ ์ ์์ผ๋ฉฐ, ํ์นํ ์ ์๋ ๋ฌด๊ฒ ์ ํ์ด ์๋ค. ๋ฐ๋ผ์ ์ฌ๋๋ค์ ๋ฌด๊ฒ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ ํ์, ํ๋ ์ด๋ถ ํ์์ ํตํด ๋ฌธ์ ๋ฅผ ํ๋ฉด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค.
ํ๋ฅผ ์ด์ฉํ ํ์ด
- people์ ์ ๋ ฌ ํ, `deque`๋ก ๋ณํํ๋ค.
- list๋ฅผ ์ฌ์ฉํ๋ฉด `list.pop(0)`์ ์ค๋ฒํค๋๊ฐ O(N)์ด๊ธฐ ๋๋ฌธ์ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.
- ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋ + ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋์ด ๋ณดํธ์ ํ์นํ ์ ์๋์ง ํ๋จํ๋ค.
- ๋ฌด๊ฒ ์ ํ์ ์ด๊ณผํ๋ค๋ฉด, ๋ฌด๊ฑฐ์ด ์ฌ๋์ ๋จผ์ ํ์ถ์ํจ๋ค.
- ๋ฌด๊ฒ ์ ํ์ ์ด๊ณผํ์ง ์๋๋ค๋ฉด, ์ ์ผ ๊ฐ๋ฒผ์ด ์ฌ๋๊ณผ ์ ์ผ ๋ฌด๊ฑฐ์ด ์ฌ๋์ ๋ ๋ค ํ์ถ์ํจ๋ค.
- while๋ฌธ์ ๋ฐ๋ณตํ ๋๋ง๋ค, ํ๋์ ๊ตฌ๋ช
๋ณดํธ๊ฐ ์ถ๊ฐ๋๋ ๊ฒ์ด๋ค.
- ๋ง์ฝ while ๋ฌธ์ ๋น ์ ธ๋์จ ํ์, ์ฌ๋์ด ๋จ์์๋ค๋ฉด ๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ถ๊ฐํด์ฃผ์ด์ผ ํ๋ค.
์ด๋ถ ํ์์ ์ด์ฉํ ํ์ด
- ํ๋ฅผ ํ์ฉํ๋ ๋ฐฉ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ๋ฌด๊ฒ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
- strart, end๋ฅผ 0, len(people) -1๋ก ์ง์ ํ์ฌ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋, ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋์ผ๋ก ์ง์ ํ๋ค.
- ํ๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, 2๋ช
์ด์ ๋ณดํธ๋ฅผ ํ ์ ์๋ค๋ฉด start์ end๋ฅผ ๋ชจ๋ ๋ณ๊ฒฝํ๋ค.
- ์ด์ ๋ฐ๋์ธ ๊ฒฝ์ฐ end๋ง ๋ณ๊ฒฝํ๋ค.
- ์ฌ๋ ์๋ ์ต๋๋ก ํ์ํ ๋ณดํธ ์๋ฅผ ์๋ฏธํ๋ฏ๋ก ์ฌ๋์ ์ - ์ด๋ถ ํ์์ ํตํด ๊ตฌํ ๊ฐ์ ํ๋ฉด ์ํ๋ ๋ต์ ์ป์ ์ ์๋ค.
์ฝ๋
deque๋ฅผ ํ์ฉํ ํ์ด
from collections import deque
def solution(people, limit):
FIRST, LAST = 0, -1
answer = 0
people = deque(sorted(people))
while len(people) > 1:
# ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋ ํผ์ ๋ฐฐ ํ๊ณ ํ์ถ.
if people[FIRST] + people[LAST] > limit:
people.pop()
# 2๋ช
์ด์ ๋ฐฐ ํ๊ณ ํ์ถ.
else:
people.popleft()
people.pop()
answer += 1
return answer + 1 if people else answer
์ด๋ถ ํ์์ ํ์ฉํ ํ์ด
def solution(people, limit):
answer = 0
people.sort()
start, end = 0, len(people) - 1
while start < end:
if people[start] + people[end] <= limit:
start += 1
answer += 1
end -= 1
return len(people) - answer
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค: ๋ ๋งต๊ฒ (0) | 2020.09.04 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค: ํ๋ฆฐํฐ (0) | 2020.09.04 |
ํ๋ก๊ทธ๋๋จธ์ค: ์ฃผ์๊ฐ๊ฒฉ (0) | 2020.09.03 |
ํ๋ก๊ทธ๋๋จธ์ค: ์คํฌํธ๋ฆฌ (0) | 2020.09.02 |
ํ๋ก๊ทธ๋๋จธ์ค: ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ (0) | 2020.09.02 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ