[BaekJoon] 백준 20055번 컨베이어 벨트 위의 로봇
🎈문제
https://www.acmicpc.net/problem/20055
💬설명
- 문제에서 주어진 대로만 하면 된다. 푸는데 40분정도 걸렸다.
- deque로 풀 수도 있었을 것 같다. 다음엔 그렇게 풀어봐야지
- 배열에 로봇 위치와 벨트 위치를 넣고 pop, push 해주면서 풀음
👩💻코드
# BaekJoon20055.py
N, K = map(int, input().split())
A = list(map(int, input().split()))
result = 0
robots = [0 for _ in range(N)]
def rotate():
global A, robots, N
# 컨베이어 벨트 회전
last = A.pop()
A = [last] + A
# 로봇 위치도 함께 변경
robots.pop()
robots = [0] + robots
robots[-1] = 0
def move_robot():
global robots, A
for i in range(len(robots) - 1, 0, -1):
if robots[i] == 0 and A[i] >= 1 and robots[i-1] != 0:
robots[i] = 1
A[i] -= 1
robots[i-1] = 0
def add_robot():
global robots, A
if A[0] != 0:
robots[0] += 1
A[0] -= 1
def check():
global A, K
num = 0
for i in A:
if i == 0:
num += 1
if num >= K:
return True
def solution():
global result
while True:
result += 1
rotate()
move_robot()
add_robot()
if check():
return result
print(solution())
728x90
반응형
'CS > Algorithm 문제' 카테고리의 다른 글
[BaekJoon] 백준 13913번 숨바꼭질4 (0) | 2021.10.28 |
---|---|
[BaekJoon] 백준 19238번 스타트 택시 (0) | 2021.10.23 |
[BaekJoon] 백준 20056번 마법사 상어와 파이어볼 (0) | 2021.10.21 |
[BaekJoon] 백준 16235번 나무 재테크 (0) | 2021.10.21 |
[BaekJoon] 백준 20058번 마법사 상어와 파이어스톰 (0) | 2021.10.21 |