소스 코드
while True:
word = list(str(input()))
if word[0] == '.':
break
res = 'yes'
chk = ['[','(',']',')']
items = []
for q in word:
if q == '.':
if len(items) != 0:
res = 'no'
break
if q in chk:
if q == chk[0] or q == chk[1]:
items.append(q)
else:
if len(items) == 0:
res = 'no'
break
else:
if items[-1] == chk[0]:
if q == chk[2]:
items.pop(-1)
else:
res = 'no'
break
elif items[-1] == chk[1]:
if q == chk[3]:
items.pop(-1)
else:
res = 'no'
break
print(res)
해결 방법
1. 주어진 값들 중 ( ) [ ] 만 저장하고 짝을 맞춰준다
2. 진행도중 다른 짝을 만나거나(items의 마지막 값과 현재 입력받은 값이 다른 경우)
3. '.' 을 만난 시점에서(다 끝났을 때) items에 항목이 남아있으면 안 됨
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.백준' 카테고리의 다른 글
[BOJ/백준 코딩] 결혼식 - PYTHON #5567 (0) | 2023.07.30 |
---|---|
[BOJ/백준 코딩] 추월 - PYTHON #2002 (0) | 2023.07.23 |
[BOJ/백준 코딩] 바이러스 - PYTHON #2606 (0) | 2023.07.09 |
[BOJ/백준 코딩] 촌수계산 - PYTHON #2644 (0) | 2023.07.02 |
[BOJ/백준 코딩] 근손실 - PYTHON #18429 (0) | 2023.06.25 |