1. 문제
2. 접근방법
문제를 이해하는게 어려웠던 문제
3. 파이썬 코드
N, K = map(int, input().split())
boxes = list(map(int, input().split()))
robots = [0] * N
cnt = 0
while True:
cnt += 1
boxes = [boxes[-1]] + list(boxes[0:len(boxes)-1])
robots = [robots[-1]] + list(robots[0:len(robots)-1])
if robots[-1] == 1:
robots[-1] = 0
for i in range(len(robots)-1, -1, -1):
if robots[i]:
if i+1 < N-1 and boxes[i+1] > 0 and robots[i+1] != 1:
robots[i] = 0
robots[i+1] = 1
boxes[i+1] -= 1
elif i+1 == N-1 and boxes[i+1] > 0:
boxes[i+1] -= 1
robots[i] = 0
if robots[0] == 0 and boxes[0] > 0:
robots[0] = 1
boxes[0] -= 1
if boxes.count(0) >= K:
print(cnt)
break
4. 마치며
나는 box랑 robot을 직접 옮겨서 풀었는데 이렇게 말고 인덱스 이용해서 푸는게 나을 거 같다는 생각을 했다 !!!!!!!!!!!!
다시 풀어볼것 . . . .
'Algorithm > Python' 카테고리의 다른 글
[알고리즘] 순열 (0) | 2021.02.07 |
---|---|
[백준 16236] 아기 상어 (2) | 2021.02.03 |
[백준 17471] 게리맨더링 (0) | 2021.02.01 |
[백준 17070] 파이프 옮기기 1 (0) | 2021.01.31 |
[백준 1929] 소수구하기 (1) | 2021.01.31 |