문제
알고리즘
- 반복문을 통해 문자열을 확인한다.
- 문자열이 '-'가 한 개 이상일 경우 반복문을 멈춘다.
- 반복문을 통해 안정적인 문자열을 찾아 pop 한다.
- 안정적인 문자열을 제외한 문자열을 안정적인 문자열로 바꿔주면서 카운트한다.
코드
import sys
inx = 1
# 반복문을 통해 문자열을 확인
while True:
word = list(map(str, sys.stdin.readline().strip()))
# 문자열이 "-"가 한 개 이상일 경우 반복문을 멈춘다.
if word.count("-") >= 1:
break
cnt = 0
stack = [word[0]]
# 반복문을 통해 안정적인 문자열을 찾는다.
for i in range(1, len(word)):
if stack:
# 안정적인 문자열이라면 pop 한다.
if stack[-1] == '{' and word[i] == '}':
stack.pop()
continue
# 문자열을 계속해서 추가
stack.append(word[i])
# 안정적인 문자열을 제외한 문자열을 안정적인 문자열로 바꿔준다.
for j in range(0, len(stack), 2):
if stack[j] == "}":
cnt += 1
if stack[j + 1] == "{":
cnt += 1
print("{0}. {1}".format(inx, cnt))
inx += 1
github
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 14405번(파이썬): 피카츄 (1) | 2022.01.17 |
---|---|
[baekjoon] 백준 4959번(파이썬): 비밀번호 발음하기 (0) | 2022.01.16 |
[baekjoon] 백준 13413번(파이썬): 오셀로 재배치 (0) | 2022.01.14 |
[baekjoon] 백준 5555번(파이썬): 반지 (0) | 2022.01.13 |
[baekjoon] 백준 1251번(파이썬): 단어 나누기 (0) | 2022.01.12 |