일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 싸이월드
- html
- 스탠실 버퍼 튜토리얼
- react native
- react native typescript navigate
- C++
- react-native
- react native 타입스크립트
- unity stencil buffer
- react native accessible
- c++ 정보은닉
- react native ios 기기 연결
- react native mac
- node
- Expo
- 리액트 네이티브 설치 오류
- 스탠실 버퍼 시작
- CSS
- GitHub
- react native typescript
- c++ using
- node.js
- 벡터와 리스트의 차이
- react
- javascript
- 스탠실 버퍼 사용
- 리액트 네이티브 맥
- react native typescript navigation
- cyworld
- stencil buffer
Archives
- Today
- Total
혀니의 이거저거 뿌시기
백준 3986 좋은 단어 본문
728x90
3986번: 좋은 단어
이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에
www.acmicpc.net
import sys
result = 0
N = int(input())
for i in range(N):
stack = list(sys.stdin.readline().strip())
temp = []
for j in range(len(stack)):
if len(temp) == 0:
temp.append(stack[j])
else:
if temp[len(temp) - 1] == stack[j]:
temp.pop()
else:
temp.append(stack[j])
if len(temp) == 0:
result += 1
print(result)
자료구조 문제이며 스택을 써야 하는 문제..
ABAB ABBA 이런식으로 되어있을때 BB처럼 연속해야 좋은단어라는 조건 = push pop이 이뤄져야 하겠구나라는 생각에 stack문제라는 것을 깨달았다.
우선, 문자열에서 한 문자씩 쪼개서 리스트에 넣고싶을땐
stack = list(input().strip()) 로하면 마지막 개행을 제외하고 리스트를 만들 수 있다.
import sys
n = int(sys.stdin.readline())
result = 0
for i in range(n):
lst = list(sys.stdin.readline().rstrip())
temp = []
while lst:
now = lst.pop()
if not temp or temp[-1] != now:
temp.append(now)
else:
temp.pop()
if not temp: result += 1
print(result)
더 짧은 코드인데
if not temp 는 if len(temp) == 0과 같은 뜻임
if 조건을 무엇과 함께 묶는가를 통해서 코드가 더 짧아질 수 있으며
now = lst.pop()처럼 pop함과 동시에 그 요소를 이용할 수도 있음.
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
백준 11279 최대 힙 (0) | 2022.08.28 |
---|---|
백준 15650 N과 M(2) - 백트래킹문제 (0) | 2022.08.28 |
백준 18258 큐2 (0) | 2022.08.27 |
백준 1541 잃어버린 괄호 (0) | 2022.08.27 |
4948 베르트랑 공준 (0) | 2022.08.26 |