๋ฐ์ํ
๋ฌธ์ ๋งํฌ
๋์ ํ์ด
1. ์ด๋ถํ์์ด๋ผ๊ณ ์ฃผ์ด์ง์ง ์์์ ๊ฒฝ์ฐ์๋ ๋ชปํ์์ ํ๋ฅ ์ด ํฌ๋ค.
2. ์ด๋ถํ์ ์๊ณ ๋ฆฌ์ฆ ๊ฐ์๋ฅผ ๋ฃ๊ณ ํ์๋ค..... ์ด๋ ต๋ค ใ
ใ
โถ ํ์ด์ค๋ช
- ์ด๋ถํ์์ ํ์ํ๊ณ ์ ํ๋ ๋ฆฌ์คํธ๊ฐ ์ ๋ ฌ๋ ์ํ์์, ๊ฐ์ฅ์์๊ฐ(left), ๊ฐ์ฅํฐ๊ฐ(right)๋ก๋ถํฐ mid๊ฐ์ ์ฐพ๊ณ , mid๊ฐ๊ณผ ๋น๊ตํด๋๊ฐ๋ฉด์ ์ต์ ๊ฐ์ ํ์ํ๋ ๊ฒ์ด๋ค.
- ํด๋น ๋ฌธ์ ์์ ๊ฐ์ฅ ์ต์ ์์๊ฐ์ left, ๊ฐ์ฅ ์ค๋๊ฑธ๋ฆฌ๋ ์๊ฐ์ right๋ก ๋๊ณ , ๋ ๊ฐ์ ๋ํ๊ณ 2๋ก ๋๋์ด์ค ๊ฐ์ mid์๊ฐ์ผ๋ก ์ ํ๋ค.
- mid์๊ฐ์ times ๋ฆฌ์คํธ์ ์๋ ๊ฐ๋ค์ ์ฌ์ฉํด์ ๋๋์ด์ฃผ๋ฉด, ํด๋น ๋ชซ์ mid์๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ ์๋์ ์๋ฅผ ์๋ฏธํ๋ค. ๋ง์ฝ ์ด ์๋์ ์๊ฐ n๋ณด๋ค ํฌ๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋์ค๊ฒ ๋๋ค. ์๋์ ์๊ฐ n๋ณด๋ค ํฌ๋ค๋ ์๋ฏธ๋, ์ ์๋ ์๋์ ์(n)์ ์ถฉ๋ถํ ์ผ์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋จํ๊ธฐ ๋๋ฌธ์ด๋ค.
- ๋ง์ง๋ง์ midํ์์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅํ ์๋์ ์๊ฐ n๋ณด๋ค ํฌ๋ฉด, ์๊ฐ์ด ์ถฉ๋ถํ๋ค๋ ๋ป์ด๋ฏ๋ก, ๋ ์์ ์๊ฐ๋์์ ์ต์ ์ ์๊ฐ์ ์ฐพ์์ผ ํ๋ค. ๋ฐ๋ผ์ answer๋ ์ง๊ธ๊น์ง ๊ตฌํ ์ต์ ์ ์์ธ mid๋ก ๋ฐ๊พธ์ด์ฃผ๊ณ , right๊ฐ์ mid-1๋ก ์ ํด์ฃผ์ด ๋ค์ ๊ฐ์ ์ฐพ๋๋ค.
- ๋ง์ฝ midํ์ ์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅํ ์๋์ ์๊ฐ n๋ณด๋ค ์์ผ๋ฉด, midํ์์ผ๋ก๋ ์๋์ ์ผ์ดํ ์ ์๋ค๋ ๋ป์ผ๋ก ํด์๋๋ค. ๋ฐ๋ผ์ midํ์๋ณด๋ค ๋ ์ถฉ๋ถํ ์๊ฐ๋์์ ์ต์ ์ ์๊ฐ์ ์ฐพ์์ผํ๋ค. ๋ฐ๋ผ์ ์ต์์๊ฐ์ผ๋ก ์ง์ ๋์ด์๋ left๊ฐ์ mid๋ฐ๋ก ์ค๋ฅธ์ชฝ๊ฐ, mid+1 ๋ก ์ฎ๊ฒจ์ฃผ๊ณ ๋ค์ ์ฒ์๋ถํฐ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
def solution(n, times):
left = 1 #๊ฐ์ฅ ํจ์จ์ ์ธ ์๊ฐ์ left์ ์ ์ฅ
right = max(times) * n #๊ฐ์ฅ ๋นํจ์จ์ ์ธ ์๊ฐ์ 60์ด
answer = 0
while left <= right:
# mid๊ฐ์ ๊ตฌํด์ฃผ๊ณ , mid ๋ณด๋ค left๊ฐ ํฌ๋ฉด left๋ฅผ mid๋ก ์ค์ ํ๊ณ ๋ค์ ์ด๋ฐ๋ถํฐ ๋ฐ๋ณต
mid = (left+right) // 2
#mid time๋์ ์ผ๋ง๋งํผ์ ์๋์ ๋ฐ์ ์ ์๋์ง people ๋ณ์์ ์ ์ฅ
people = 0
for t in times:
people += mid//t
if people >= n :
break
# ๋ง์ฝ mid์๊ฐ์์ ์ฒ๋ฆฌํ๋ ์๋์ ์๊ฐ n๋ณด๋ค ํฌ๋ฉด mid ๋ณด๋ค ์์ ๊ณต๊ฐ์์ ์ต์ ์๋ฅผ ์ฐพ์์ผํ๋ฏ๋ก
if people >= n:
answer = mid
right = mid -1
#๋ง์ฝ mid์๊ฐ์์ ์ฒ๋ฆฌํ๋ ์๋์ ์๊ฐ n๋ณด๋ค ์์ผ๋ฉด mid๋ณด๋ค ํฐ ์๊ฐ๋์์ ์ต์ ์๋ฅผ ์ฐพ์์ผํ๋ฏ๋ก left๋ฅผ ์ฎ๊ฒจ์ค
elif people < n:
left = mid + 1
return answer
๋ค๋ฅธ์ฌ๋ํ์ด
๊ฐ์ฅ ์ข์์๋ฅผ ๋ง์ด ๋ฐ์ ํ์ด๋ ๋์ฒ๋ผ ํผ ์ด๋ถํ์ํ ํ์ด์๋ค. ์ด๋ถํ์์ ๋ํด์ ์กฐ๊ธ ๋ ์์ธํ๊ฒ ๊ณต๋ถ๋ฅผ ํด๋ณธ๋ค ์ด ๋ฌธ์ ๋ฅผ ๋ค์ ํ์ด๋ณด๊ธธ ๋ฐ๋๋ค. ๊ผญ ,,, ๋ง์ถ์
๋ฐ์ํ
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ด๋ถํ์ - ์ง๊ฒ๋ค๋ฆฌ (ํ์ด์ฌ) (2) | 2021.10.14 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌ๋ฐ๋ฅธ ๊ดํธ (level.2) (0) | 2021.10.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ํ์ - ์นดํซ (level.2) (0) | 2021.09.23 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฃผ์๊ฐ๊ฒฉ (level.2) (0) | 2021.09.23 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ์ฑํ ๋ฐฉ (์นด์นด์ค, level.2) (0) | 2021.09.16 |