문제
로봇은 소문자일 때 컨테이너를 저장소에 넣고 대문자일 때 저장소에서 컨테이너를 꺼낸다.
작업이 끝날 후 저장소가 비어 있어야 안정된 작업이다.
안정적인 작업인지를 판단하라.
풀이
스택을 사용해 푸는 문제이다.
islower()에서 True이면 소문자이므로 리스트에 추가한다.
False이고 리스트가 비어있지 않고 대문자로 표시된 문자가 리스트에 마지막으로 저장된 문자와 같다면 꺼낸다.
이외에는 안정적인 작업이 아니므로 0을 출력하고 종료한다.
for문이 break으로 끝나지 않으면 else문이 실행된다.
리스트가 완전히 비었을 때만 1을 출력한다.
코드
import sys
input=sys.stdin.readline
n=int(input())
s=input().strip()
repository=[]
for char in s:
if char.islower():
repository.append(char)
elif repository and (char.lower() == repository[-1]):
repository.pop()
else:
print(0)
break
else:
if not repository:
print(1)
else:
print(0)
'BOJ > Python' 카테고리의 다른 글
[BOJ/백준] 3986 - 좋은 단어 (Python) (0) | 2025.01.22 |
---|---|
[BOJ/백준] 33170 - ブラックジャック (Blackjack) (Python) (0) | 2025.01.22 |
[BOJ/백준] 3449 - 해밍 거리 (Python) (0) | 2025.01.21 |
[BOJ/백준] 33163 - OIJ (Python) (1) | 2025.01.21 |
[BOJ/백준] 33161 - 鉛筆 2 (Pencils 2) (Python) (0) | 2025.01.21 |