백준 10799 쇠막대기

Hyun·2022년 11월 12일
0

코딩테스트

목록 보기
13/66

https://www.acmicpc.net/problem/10799
실패이유 : 구현실패

bars = input()
stack = []

bars = list(bars.replace("()", "*"))	# 알아보기 쉽게 레이저 부분을 * 로 변환

bar_cnt = 0
for ch in bars:
    if ch == "(":
        stack.append(ch)            # 막대기 시작부분 '(' 스택에 넣기
    elif ch == "*":
        bar_cnt += len(stack)       # 레이저를 만나면, 현재 스택에 들어있는 '(' 수만큼 더해준다.
    elif ch == ")":
        stack.pop()
        bar_cnt += 1    # 막대기 끝 부분을 더한다.

print(bar_cnt)

스택을 이용하여 문제풀이

  • 문제를 너무 어렵게 생각하지 말자

출처 : https://claude-u.tistory.com/331

0개의 댓글

관련 채용 정보