Programming/백준
백준 31844 - 창고지기 (파이썬)
pental
2025. 3. 16. 15:33
https://www.acmicpc.net/problem/31844
풀이
문제 이해를 하면 다음과 같다
- 문자열 S를 입력받기
- 변수 robot과 goal을 각각 -1로 초기화하고, order 리스트를 생성
- 문자열을 순회하며 다음을 수행
- '@', '#', '!' 문자일 경우, 이를 order 리스트에 추가
- '@'이면 robot에 해당 인덱스를 저장
- '!'이면 goal에 해당 인덱스를 저장
- 두 번째로 등장한 문자가 '#'인지 확인하고, 맞다면 robot과 goal 사이의 거리에서 1을 뺀 값을 출력
- 아니라면 -1을 출력한다.
코드
# 백준 31844 - 창고지기
# 분류 : 구현
S = input()
robot = -1
goal = -1
order = []
for i in range(len(S)) :
if S[i] in ['@', '#', '!'] :
order.append(S[i])
if S[i] == '@' :
robot = i
if S[i] == '!' :
goal = i
if order[1] == '#' :
print(abs(robot - goal) - 1)
else :
print(-1)