๐ค๋ฌธ์ ํด๊ฒฐ
Lv4
๊ธฐ์ค์ ์ ํ๋ ์ ํ๋ค. 0๋ถํฐ ์ฟ ํค์ ๊ธธ์ด-1 ๊น์ง
๊ทธ ๊ธฐ์ค์ ์ฒซ์งธ ์๋ค ๊ณผ์, ๊ธฐ์ค + 1์ ๋์งธ ์๋ค ๊ณผ์๋ก ์์ํ๋ค.
1. ์ฒซ์งธ์ ๊ณผ์๊ฐ ์ ์ผ๋ฏ๋ก ์ฒซ์งธ์๊ฒ ๊ณผ์๋ฅผ ํ๋ ๋ ์ค๋ค.
2. ๋์งธ์ ๊ณผ์๊ฐ ๋ ์ ์ผ๋ฏ๋ก ๋์งธ์๊ฒ ๊ณผ์๋ฅผ ํ๋ ๋ ์ค๋ค.
3. ์ฒซ์งธ์ ๊ณผ์๊ฐ ์ ์ผ๋ฏ๋ก ์ฒซ์งธ์๊ฒ ๊ณผ์๋ฅผ ํ๋ ๋ ์ค๋ค.
4. ๋์งธ์ ๊ณผ์๊ฐ ๋ ์ ์ผ๋ฏ๋ก ๋์งธ์๊ฒ ๊ณผ์๋ฅผ ํ๋ ๋ ์ค๋ค.
5. ๋์ ๊ณผ์๊ฐ ๊ฐ์ผ๋ฏ๋ก ๊ฐ์ ์ ์ฅํ๊ณ ์ฒซ์งธ๋ถํฐ ๊ณผ์๋ฅผ ๋ ์ค๋ณธ๋ค. (๋์งธ ๋จผ์ ์ค๋ ๋๋ค.)
6. ๋์งธ์ ๊ณผ์๊ฐ ๋ ์ ์ผ๋ฏ๋ก ๋์งธ์๊ฒ ๊ณผ์๋ฅผ ํ๋ ๋ ์ค๋ค.
7. ์ฒซ์งธ์ ๊ณผ์๊ฐ ๋ ์ ์ด์ ์ฒซ์งธ์๊ฒ ๊ณผ์๋ฅผ ๋ ์ฃผ๊ณ ์ถ์ง๋ง ๋ ์ด์ ์ค ๊ณผ์๊ฐ ์๋ค.
8. ๋ค์ ๊ธฐ์ค์ ์ก๊ณ ์์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
๐จ
๐ป์์ค ์ฝ๋
def solution(cookie):
answer = 0
n = len(cookie)
for i in range(n - 1):
left_sum, left_idx = cookie[i], i
right_sum, right_idx = cookie[i + 1], i + 1
while True:
if left_sum == right_sum:
answer = max(answer, left_sum)
# answer = max(answer, right_sum)
if left_idx > 0 and left_sum <= right_sum:
left_idx -= 1
left_sum += cookie[left_idx]
elif right_idx < n - 1 and right_sum <= left_sum:
right_idx += 1
right_sum += cookie[right_idx]
else:
break
return answer
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค
๋งํฌ: https://programmers.co.kr/learn/courses/30/lessons/49995
๋ฌธ์ ์ค๋ช
๊ณผ์๋ฅผ ๋ฐ๊ตฌ๋ ๋จ์๋ก ํ๋ ๊ฐ๊ฒ๊ฐ ์์ต๋๋ค. ์ด ๊ฐ๊ฒ๋ 1๋ฒ๋ถํฐ N๋ฒ๊น์ง ์ฐจ๋ก๋ก ๋ฒํธ๊ฐ ๋ถ์ ๋ฐ๊ตฌ๋ N๊ฐ๊ฐ ์ผ๋ ฌ๋ก ๋์ดํด ๋จ์ต๋๋ค.
์ฒ ์๋ ๋ ์๋ค์๊ฒ ์ค ๊ณผ์๋ฅผ ์ฌ๋ คํฉ๋๋ค. ์ฒซ์งธ ์๋ค์๊ฒ๋ l๋ฒ ๋ฐ๊ตฌ๋๋ถํฐ m๋ฒ ๋ฐ๊ตฌ๋๊น์ง, ๋์งธ ์๋ค์๊ฒ๋ m+1๋ฒ ๋ฐ๊ตฌ๋๋ถํฐ r๋ฒ ๋ฐ๊ตฌ๋๊น์ง๋ฅผ ์ฃผ๋ คํฉ๋๋ค. ๋จ, ๋ ์๋ค์ด ๋ฐ์ ๊ณผ์ ์๋ ๊ฐ์์ผ ํฉ๋๋ค(1 <= l <= m, m+1 <= r <= N). ์ฆ, A[i] ๋ฅผ i๋ฒ ๋ฐ๊ตฌ๋์ ๋ค์ด์๋ ๊ณผ์ ์๋ผ๊ณ ํ์ ๋, A[l]+..+A[m] = A[m+1]+..+A[r] ๋ฅผ ๋ง์กฑํด์ผ ํฉ๋๋ค.
๊ฐ ๋ฐ๊ตฌ๋ ์์ ๋ค์ ๊ณผ์ ์๊ฐ ์ฐจ๋ก๋ก ๋ค์ ๋ฐฐ์ด cookie๊ฐ ์ฃผ์ด์ง ๋, ์กฐ๊ฑด์ ๋ง๊ฒ ๊ณผ์๋ฅผ ์ด ๊ฒฝ์ฐ ํ ๋ช ์ ์๋ค์๊ฒ ์ค ์ ์๋ ๊ฐ์ฅ ๋ง์ ๊ณผ์ ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. (๋จ, ์กฐ๊ฑด์ ๋ง๊ฒ ๊ณผ์๋ฅผ ๊ตฌ๋งคํ ์ ์๋ค๋ฉด 0์ return ํฉ๋๋ค)
์ ํ์ฌํญ
- cookie์ ๊ธธ์ด๋ 1 ์ด์ 2,000 ์ดํ์ ๋๋ค.
- cookie์ ๊ฐ๊ฐ์ ์์๋ 1 ์ด์ 500 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
cookieresult
cookie | result |
[1,1,2,3] | 3 |
[1,2,4,5] | 0 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
์ฒซ์งธ ์๋ค์๊ฒ 2, 3๋ฒ ๋ฐ๊ตฌ๋๋ฅผ, ๋์งธ ์๋ค์๊ฒ 4๋ฒ ๋ฐ๊ตฌ๋๋ฅผ ์ฌ์ฃผ๋ฉด ๋ ์๋ค์ ๊ฐ๊ฐ ๊ณผ์ 3๊ฐ๋ฅผ ๋ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง๊ฒ ๊ณผ์๋ฅผ ์ด ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
'Algorithm Problem > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] ํ๋ก๊ทธ๋๋จธ์ค - ๋ธ๋ก ๊ฒ์(2019 KAKAO BLIND RECRUITMENT) (3) | 2020.09.11 |
---|---|
[python] ํ๋ก๊ทธ๋๋จธ์ค - ์ผ๊ทผ ์ง์ (0) | 2020.09.11 |
[python] ํ๋ก๊ทธ๋๋จธ์ค - ๋์คํฌ ์ปจํธ๋กค๋ฌ (0) | 2020.09.10 |
[python] ๋ฐฑ์ค - 2343. ๊ธฐํ ๋ ์จ (5) | 2020.09.09 |
[python] ๋ฐฑ์ค - 1926. ๊ทธ๋ฆผ (0) | 2020.09.08 |