https://www.acmicpc.net/problem/3986
3986번: 좋은 단어
이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에
www.acmicpc.net
조건
- 단어 위로 아치형 곡선을 그어 같은 글짜끼리 쌍을 지었을때, 선끼리 교차하지 않으면서, 다른 한 개의 다른 위치에 있는 같은 글자와 짝을 지을 수 있다면, 좋은 단어임.
- 좋은단어의 갯수를 구하자.
입력
- A와B로만 이루어진 단어가 한줄에 하나씩 주어진다.
이번 문제도, 문제 자체가 , 이해하기가 어려웠음. 그래서, 진짜 위에 아치를 그려보면서 해보니까
이런말이란 걸 알았음. 밑은 좋은 단어의 예시임!
Input값이랑 stk의 TOP값이 다르면, stack에 넣고, stk의 TOP과 같으면, POP 해주고.
모든 연산을 했을때, 스택이 비어있으면 , 얘는 좋은 단어겠죠?
import sys
input = sys.stdin.readline
n= int(input())
words = [list(input().strip()) for _ in range(n)]
cnt=0
for word in words:
stk=[]
for i in range(len(word)):
if not stk:
stk.append(word[i])
else:
if stk[-1]==word[i]:
stk.pop()
else:
stk.append(word[i])
if not stk:
cnt+=1
print(cnt)
#이렇게 표현될 수 있을거 같음.
'알고리즘 문제(SOL)' 카테고리의 다른 글
[백준/1715/파이썬] 카드 정렬하기 (0) | 2021.12.16 |
---|---|
[백준/2075/파이썬] N번째 큰 수 (0) | 2021.12.16 |
[백준/2841/파이썬] 외계인의 기타 연주 (2) | 2021.12.16 |
[백준/2304/파이썬] 창고 다각형 (0) | 2021.12.16 |
[백준/10799/파이썬] 쇠막대기 (0) | 2021.12.16 |