<문제>

https://www.acmicpc.net/problem/25497

 

 

<풀이>

import sys

input = sys.stdin.readline
N = int(input())

skills = input().strip()
count = 0
stack_LR = []
stack_SK = []

for s in skills:
    if s == 'L':
        stack_LR.append(s)
    elif s == 'S':
        stack_SK.append(s)
    elif s == 'R':
        if stack_LR:
            stack_LR.pop()
            count += 1
        else:
            break
    elif s == 'K':
        if stack_SK:
            stack_SK.pop()
            count += 1
        else:
            break

    else:
        count += 1

print(count)

 

- input()에 strip을 해줘야 함.. /n이 들어가서 예상과 다르게 동작할 수 있음

- {()} 같은 스택 문제를 만드려다가 잘못 만든 것 같은 느낌이 든다. 중간에 기술이 끼어도 카운트가 되어버리는데 그러면 스택 문제가 아니지 않나..?

- 어쩔 수 없이 스택 2개를 사용

- 스택에 요소가 없을 때 pop을 하면 오류가 남

'TIL > [파이썬] 1일 1코테' 카테고리의 다른 글

막대기_백준17608  (0) 2025.02.04
스택_백준10828  (0) 2025.02.03
회상_백준32953  (0) 2025.01.24
전주 듣고 노래 맞히기_백준31562  (0) 2025.01.23
아 맞다 마늘_백준32978  (0) 2025.01.22

+ Recent posts