ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฐฑ์ค: 20055 ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์ ๋ก๋ด
dirmathfl 2021. 4. 13. 18:49๋ฌธ์
20055๋ฒ: ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์ ๋ก๋ด
๊ธธ์ด๊ฐ N์ธ ์ปจ๋ฒ ์ด์ด ๋ฒจํธ๊ฐ ์๊ณ , ๊ธธ์ด๊ฐ 2N์ธ ๋ฒจํธ๊ฐ ์ด ์ปจ๋ฒ ์ด์ด ๋ฒจํธ๋ฅผ ์์๋๋ก ๊ฐ์ธ๋ฉฐ ๋๊ณ ์๋ค. ๋ฒจํธ๋ ๊ธธ์ด 1 ๊ฐ๊ฒฉ์ผ๋ก 2N๊ฐ์ ์นธ์ผ๋ก ๋๋์ด์ ธ ์์ผ๋ฉฐ, ๊ฐ ์นธ์๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 1๋ถ
www.acmicpc.net
๋ฌธ์ ํ์ด
์๋ฎฌ๋ ์ด์ ๋ฌธ์ ์ค์์ ์ฌ์ด ํธ์ ์ํ๋ฉฐ, ๋ฌธ์ ์ ์๊ตฌํ๋ ์ฌํญ๋๋ก ๊ตฌํํ๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค. ์ปจ๋ฒ ์ด์ด ๋ฒจํธ๊ฐ ํ์ ํ๋ ๊ฒ์ `deque.rotate()`๋ฅผ ํ์ฉํ๋ฉด ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค.
- ๋ฒจํธ๊ฐ ํ ์นธ ํ์ ํ๋ค.
- ๊ฐ์ฅ ๋จผ์ ๋ฒจํธ์ ์ฌ๋ผ๊ฐ ๋ก๋ด๋ถํฐ, ๋ฒจํธ๊ฐ ํ์ ํ๋ ๋ฐฉํฅ์ผ๋ก ํ ์นธ ์ด๋ํ ์ ์๋ค๋ฉด ์ด๋ํ๋ค. ๋ง์ฝ ์ด๋ํ ์ ์๋ค๋ฉด ๊ฐ๋งํ ์๋๋ค.
- ๋ก๋ด์ด ์ด๋ํ๊ธฐ ์ํด์๋ ์ด๋ํ๋ ค๋ ์นธ์ ๋ก๋ด์ด ์์ผ๋ฉฐ, ๊ทธ ์นธ์ ๋ด๊ตฌ๋๊ฐ 1 ์ด์ ๋จ์ ์์ด์ผ ํ๋ค.
- ์ฌ๋ผ๊ฐ๋ ์์น์ ๋ก๋ด์ด ์๋ค๋ฉด ๋ก๋ด์ ํ๋ ์ฌ๋ฆฐ๋ค.
- ๋ด๊ตฌ๋๊ฐ 0์ธ ์นธ์ ๊ฐ์๊ฐ K๊ฐ ์ด์์ด๋ผ๋ฉด ๊ณผ์ ์ ์ข ๋ฃํ๊ณ , ์๋๋ฉด 1๋ฒ์ผ๋ก ๋์๊ฐ๋ค.
๋ฌธ์ ์์ ์ ์๋ ์์ ๊ณผ์ ์ ์์๋๋ก ๊ตฌํํ๋ฉด ๋๋ค. ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ด๋ ค์ด ์ฌํญ์ ์์์ง๋ง `bool` ํ์ ์ ์ฌ์ฉํ๋ฉด ์๋๊ฐ ๋๋ฆฐ์ง 57% ํต๊ณก์ ๋ฒฝ์ด ์์๋ค. (57%์์ ๊ณ์ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.)
์ฝ๋
from sys import stdin
from collections import deque
if __name__ == '__main__':
N, K = map(int, stdin.readline().split())
A = deque(map(int, stdin.readline().split()))
robot = deque([0] * N)
stage = 0
# 4. ์ปจ๋ฒ ์ด์ด ๋ฒจํธ์ ๋ด๊ตฌ๋๊ฐ 0์ธ ๊ฒ์ด K๊ฐ ์ด์์ธ ๊ฒฝ์ฐ๊น์ง ๋ฐ๋ณต
while A.count(0) < K:
# 1. ๋ฒจํธ์ ๋ก๋ด์ ํ ์นธ ํ์
# (clockwise)
A.rotate(1)
robot.rotate(1)
# ๋ด๋ ค๊ฐ ์์น์ ๋ก๋ด์ ๋ด๋ฆผ
robot[-1] = 0
# 2. ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ ๋ก๋ด์ ์์ง์
for idx in range(N - 2, -1, -1):
# ๋ก๋ด์ด ์์ผ๋ฉด ํจ์ค
if robot[idx] == 0:
continue
# ๋ค์์นธ์ ๋ก๋ด์ด ์๊ณ ๋ด๊ตฌ๋๊ฐ ์๋ค๋ฉด, ์ฎ๊น
if robot[idx + 1] == 0 and A[idx + 1]:
A[idx + 1] -= 1
robot[idx + 1] = 1
robot[idx] = 0
# ์ด๋ ํ์๋ ๋ด๋ ค๊ฐ ๊ณณ์ ์๋ค๋ฉด ๋ด๋ฆผ
robot[-1] = 0
# 3. ์ฒซ ๋ฒ์งธ ์นธ์ ์ฌ๋ฆด ์ ์๋ค๋ฉด ์ฌ๋ฆฌ๊ธฐ.
if A[0] and robot[0] == 0:
A[0] -= 1
robot[0] = 1
stage += 1
print(stage)
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 19238 ์คํํธ ํ์ (0) | 2021.04.15 |
---|---|
๋ฐฑ์ค: 20058 ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด์คํฐ (2) | 2021.04.14 |
๋ฐฑ์ค: 14567 ์ ์๊ณผ๋ชฉ(Prerequisite) (0) | 2021.04.13 |
๋ฐฑ์ค: 17485 ์ง์ฐ์ ๋ฌ ์ฌํ (Large) (0) | 2021.04.09 |
๋ฐฑ์ค: 1106 ํธํ (0) | 2021.04.07 |