반응형
백준 BAEKJOON 31844번 창고지기 [PYTHON/파이썬]
<문제 출처> (BRONZE Ⅱ)
https://www.acmicpc.net/problem/31844
<풀이>
박스를 원하는 칸으로 이동시키기 위해서는
로봇의 위치 < 박스의 위치 < 깃발의 위치 혹은 깃발의 위치 < 박스의 위치 < 로봇의 위치가 성립해야 한다.
성립하지 않으면 박스를 원하는 칸으로 옮길 수 없기 때문에 -1을 출력한다.
로봇의 첫 번째 명령은 박스의 위치 한 칸 전까지 이동해야 하니
박스의 위치에서 로봇의 위치를 뺀 뒤 또 1을 빼줘야 한다.
로봇의 두 번째 명령은 박스를 미는 행위이기 때문에
깃발의 위치에서 박스의 위치를 빼주면 된다.
이 두 가지 명령의 횟수를 더해주면 결과를 출력할 수 있다.
<코드>
storage = list(input())
robot = storage.index("@") # 로봇의 위치
box = storage.index("#") # 박스의 위치
flag = storage.index("!") # 깃발의 위치
if (robot < box < flag) or (robot > box > flag):
commandFirst = abs(box - robot) - 1
commandSecond = abs(flag - box)
print(commandFirst + commandSecond)
else:
print(-1)
반응형
'ALGORITHM > PYTHON' 카테고리의 다른 글
백준 BAEKJOON 31962번 등교 [PYTHON/파이썬] (0) | 2024.07.16 |
---|---|
백준 BAEKJOON 31859번 SMUPC NAME [PYTHON/파이썬] (0) | 2024.07.03 |
백준 BAEKJOON 31881번 K512에 바이러스 퍼뜨리기 [PYTHON/파이썬] (0) | 2024.06.29 |
백준 BAEKJOON 31880번 K512컵 개최! [PYTHON/파이썬] (0) | 2024.06.28 |
백준 BAEKJOON 31868번 수박 게임 [PYTHON/파이썬] (1) | 2024.06.15 |