๐กsolutions )
๐ฌ ์๋ฎฌ๋ ์ด์ ์ ํ์ผ๋ก ๋ฌธ์ ์์ ์ฃผ์ด์ง ์กฐ๊ฑด๋ค์ ์ฐจ๋ก๋๋ก ๊ตฌํํ๋ฉด ๋๋ ๋ฌธ์
๐ฌ deque ์๋ฃํ๊ณผ rotate() ๋ฉ์๋ ์ฌ์ฉํ์ฌ ์ปจ๋ฒ ์ด์ด๊ฐ ํ์นธ์ฉ ์ด๋ํ๋ ๊ฒ์ ๋ํ๋
๐จ๐ปcode )
import sys
from collections import deque
input = sys.stdin.readline
n, k = map(int, input().split())
conveyor_belt = deque(list(map(int, input().split())))
robot = deque([0]*n)
answer = 0
while True:
robot.rotate(1)
conveyor_belt.rotate(1)
robot[-1] = 0
for i in range(n-2, -1, -1):
if robot[i] and not robot[i+1] and conveyor_belt[i+1]:
conveyor_belt[i+1] -= 1
robot[i+1] = 1
robot[i] = 0
robot[-1] = 0
if not robot[0] and conveyor_belt[0] > 0:
robot[0] = 1
conveyor_belt[0] -= 1
answer += 1
if conveyor_belt.count(0) >= k:
break
print(answer)
๐description )
๊ธธ์ด๊ฐ N์ธ ์ปจ๋ฒ ์ด์ด ๋ฒจํธ๊ฐ ์๊ณ , ๊ธธ์ด๊ฐ 2N์ธ ๋ฒจํธ๊ฐ ์ด ์ปจ๋ฒ ์ด์ด ๋ฒจํธ๋ฅผ ์์๋๋ก ๊ฐ์ธ๋ฉฐ ๋๊ณ ์๋ค. ๋ฒจํธ๋ ๊ธธ์ด 1 ๊ฐ๊ฒฉ์ผ๋ก 2N๊ฐ์ ์นธ์ผ๋ก ๋๋์ด์ ธ ์์ผ๋ฉฐ, ๊ฐ ์นธ์๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 1๋ถํฐ 2N๊น์ง์ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๋ค.
๋ฒจํธ๊ฐ ํ ์นธ ํ์ ํ๋ฉด 1๋ฒ๋ถํฐ 2N-1๋ฒ๊น์ง์ ์นธ์ ๋ค์ ๋ฒํธ์ ์นธ์ด ์๋ ์์น๋ก ์ด๋ํ๊ณ , 2N๋ฒ ์นธ์ 1๋ฒ ์นธ์ ์์น๋ก ์ด๋ํ๋ค. i๋ฒ ์นธ์ ๋ด๊ตฌ๋๋ Ai์ด๋ค. ์์ ๊ทธ๋ฆผ์์ 1๋ฒ ์นธ์ด ์๋ ์์น๋ฅผ "์ฌ๋ฆฌ๋ ์์น", N๋ฒ ์นธ์ด ์๋ ์์น๋ฅผ "๋ด๋ฆฌ๋ ์์น"๋ผ๊ณ ํ๋ค.
์ปจ๋ฒ ์ด์ด ๋ฒจํธ์ ๋ฐ์ค ๋ชจ์ ๋ก๋ด์ ํ๋์ฉ ์ฌ๋ฆฌ๋ ค๊ณ ํ๋ค. ๋ก๋ด์ ์ฌ๋ฆฌ๋ ์์น์๋ง ์ฌ๋ฆด ์ ์๋ค. ์ธ์ ๋ ์ง ๋ก๋ด์ด ๋ด๋ฆฌ๋ ์์น์ ๋๋ฌํ๋ฉด ๊ทธ ์ฆ์ ๋ด๋ฆฐ๋ค. ๋ก๋ด์ ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์์ ์ค์ค๋ก ์ด๋ํ ์ ์๋ค. ๋ก๋ด์ ์ฌ๋ฆฌ๋ ์์น์ ์ฌ๋ฆฌ๊ฑฐ๋ ๋ก๋ด์ด ์ด๋ค ์นธ์ผ๋ก ์ด๋ํ๋ฉด ๊ทธ ์นธ์ ๋ด๊ตฌ๋๋ ์ฆ์ 1๋งํผ ๊ฐ์ํ๋ค.
์ปจ๋ฒ ์ด์ด ๋ฒจํธ๋ฅผ ์ด์ฉํด ๋ก๋ด๋ค์ ๊ฑด๋ํธ์ผ๋ก ์ฎ๊ธฐ๋ ค๊ณ ํ๋ค. ๋ก๋ด์ ์ฎ๊ธฐ๋ ๊ณผ์ ์์๋ ์๋์ ๊ฐ์ ์ผ์ด ์์๋๋ก ์ผ์ด๋๋ค.
- ๋ฒจํธ๊ฐ ๊ฐ ์นธ ์์ ์๋ ๋ก๋ด๊ณผ ํจ๊ป ํ ์นธ ํ์ ํ๋ค.
- ๊ฐ์ฅ ๋จผ์ ๋ฒจํธ์ ์ฌ๋ผ๊ฐ ๋ก๋ด๋ถํฐ, ๋ฒจํธ๊ฐ ํ์ ํ๋ ๋ฐฉํฅ์ผ๋ก ํ ์นธ ์ด๋ํ ์ ์๋ค๋ฉด ์ด๋ํ๋ค. ๋ง์ฝ ์ด๋ํ ์ ์๋ค๋ฉด ๊ฐ๋งํ ์๋๋ค.
- ๋ก๋ด์ด ์ด๋ํ๊ธฐ ์ํด์๋ ์ด๋ํ๋ ค๋ ์นธ์ ๋ก๋ด์ด ์์ผ๋ฉฐ, ๊ทธ ์นธ์ ๋ด๊ตฌ๋๊ฐ 1 ์ด์ ๋จ์ ์์ด์ผ ํ๋ค.
- ์ฌ๋ฆฌ๋ ์์น์ ์๋ ์นธ์ ๋ด๊ตฌ๋๊ฐ 0์ด ์๋๋ฉด ์ฌ๋ฆฌ๋ ์์น์ ๋ก๋ด์ ์ฌ๋ฆฐ๋ค.
- ๋ด๊ตฌ๋๊ฐ 0์ธ ์นธ์ ๊ฐ์๊ฐ K๊ฐ ์ด์์ด๋ผ๋ฉด ๊ณผ์ ์ ์ข ๋ฃํ๋ค. ๊ทธ๋ ์ง ์๋ค๋ฉด 1๋ฒ์ผ๋ก ๋์๊ฐ๋ค.
์ข ๋ฃ๋์์ ๋ ๋ช ๋ฒ์งธ ๋จ๊ณ๊ฐ ์งํ ์ค์ด์๋์ง ๊ตฌํด๋ณด์. ๊ฐ์ฅ ์ฒ์ ์ํ๋๋ ๋จ๊ณ๋ 1๋ฒ์งธ ๋จ๊ณ์ด๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N, K๊ฐ ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ A1, A2, ..., A2N์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
๋ช ๋ฒ์งธ ๋จ๊ณ๊ฐ ์งํ ์ค์ผ๋ ์ข ๋ฃ๋์๋์ง ์ถ๋ ฅํ๋ค.
์ ํ
- 2 ≤ N ≤ 100
- 1 ≤ K ≤ 2N
- 1 ≤ Ai ≤ 1,000
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] ๊ฒ์ผ๋ฅธ ๋ฐฑ๊ณฐ / 10025๋ฒ / ํ์ด์ฌ / Python / Sliding Window / ์ฌ๋ผ์ด๋ฉ ์๋์ฐ (0) | 2021.11.01 |
---|---|
[๋ฐฑ์ค] ์ฃผ๋ชฝ / 1940๋ฒ / ํ์ด์ฌ / Python (0) | 2021.10.31 |
[๋ฐฑ์ค] 1244๋ฒ / ์ค์์น ์ผ๊ณ ๋๊ธฐ / ํ์ด์ฌ / python (0) | 2021.10.14 |
[๋ฐฑ์ค] 10815๋ฒ / ์ซ์ ์นด๋ / ํ์ด์ฌ / python (0) | 2021.10.13 |
[๋ฐฑ์ค] 2979๋ฒ / ํธ๋ญ ์ฃผ์ฐจ / ํ์ด์ฌ / Python (0) | 2021.10.07 |