728x90
https://www.acmicpc.net/problem/15904
22/09/14
이 문제 또한 문자열 문제이지만 스택으로 접근했다.
정확히 말하면 정수 카운팅에 가깝지만, 어쨌든 그것 또한 스택을 추상적으로 모델링한 것이므로 스택을 이용한 것에 가깝다고 볼 수 있다.
문제 접근 방식:
문제는 일부 문자열을 지워서 UCPC를 만들 수 있는가를 묻는 문제이다.
나는 문자열을 하나씩 반복하여 돌다가 맨 처음에 U를 만나면 stack을 +1 해주었다. 이후 stack이 1인 상태에서 C를 만나면 또 stack을 +1 해주었다. 이런 식으로 맨 마지막의 stack의 값이 4라면 UCPC를 만들 수 있는 것으로 보았다.
그렇지 않으면 UCPC를 만들 수 없는 것이다.
아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더보기를 누르면 확인할 수 있다.
더보기
# 15904번 UCPC는 무엇의 약자일까?
# 스택
import sys
input = sys.stdin.readline
S = input().rstrip()
stack = 0
for char in S:
if char == 'U' and stack == 0:
stack += 1
elif char == 'C' and stack == 1:
stack += 1
elif char == 'P' and stack == 2:
stack += 1
elif char == 'C' and stack == 3:
stack += 1
break
if stack == 4:
print('I love UCPC')
else:
print('I hate UCPC')
'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
[Python] 5637번 가장 긴 단어 (0) | 2022.09.28 |
---|---|
[Python] 16113번 시그널 (0) | 2022.09.28 |
[Python] 17413번 단어 뒤집기 2 (0) | 2022.09.28 |
[Python] 2684번 동전 게임 (0) | 2022.09.27 |
[Python] 5525번 IOIOI (0) | 2022.09.27 |