티스토리 뷰
반응형
문제
- 문자열 s의 반복된 부분을 삭제한다. 연속문자를 계속 지워나간다. CAAABBA 의 경우 AA를 지워 CABBA가 되고 BB를 지워 CAA, 다시 AA를 지워 C만 남는다. 남은 길이를 출력한다.
문제 상황
- 연속되는 문자를 지우는 상황으로 카카오 문제의 인형뽑기 문제와 비슷하다. 연속으로 같은 것이 있으면 지워지는 개념이다.
해결 전략
- stack을 활용해서 채워나가면서 마지막 두 값이 같은지를 확인하는 부분을 만든다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
T = int(input())
for idx in range(T):
s = list(input())
# 들어오는 문자를 확인할 스택
stack = []
# stack에 채울 숫자를 하나하나 확인
for i in range(len(s)):
# stack이 비어있지 않고 넣으려는 값이랑 같은 값이 마지막에 존재하면
# stack의 top 값을 제거한다.
if stack and stack[-1] == s[i]:
stack.pop()
# 위의 상황이 아니면 s[i]를 추가한다.
else:
stack.append(s[i])
print(f"#{idx+1} {len(stack)}")
|
cs |
해설
- 처음에는 넣은 후 index가 -1, -2 인 값을 비교해 같으면 지우는 구조를 생각했지만 그렇게 되면 쓸데없이 append하는 과정이 생기고 if 조건문이 하나 더 생기므로 속도 낭비가 생긴다. 넣는 단계에서 같으면 두개를 제거하는게 아니라 기존에 존재하는 한개만 제거하는 것이 더 효율적이다.
새로 학습한 것 & 실수
- .
출처 - https://swexpertacademy.com/main/
반응형
'알고리즘 학습 > 삼성 SWEA' 카테고리의 다른 글
SWEA - 미로 찾기 (4875) [Python] (0) | 2020.08.26 |
---|---|
SWEA - Forth (4874) [Python] (0) | 2020.08.26 |
SWEA - 그래프 경로 (4871) [Python] (0) | 2020.08.25 |
SWEA - 괄호 검사(4866) [Python] (0) | 2020.08.25 |
SWEA - 특별한 정렬 [Python] (0) | 2020.08.25 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 나무자르기#BOJ#이분탐색#Python
- 토마토#백준알고리즘#Python
- filter#isalnum#lower
- Swift#Tuples#Range
- 랜선자르기#이분탐색#BOJ#Python
- 공유기 설치#BOJ#이분탐색#Python
- Brackets#Stacks and Queues#Codility#Python
- django
- 리모컨#완전탐색#BOJ#Python
- N으로 표현#DP#Programmers#Python
- 종이자르기#분할정복#BOJ#Python
- 미로 탐색#백준알고리즘#Python
- 텀 프로젝트#백준알고리즘#Python
- 섬의개수#백준알고리즘#Python
- PassingCars#Codility#Python
- 파이썬알고리즘인터뷰#4장
- API#lazy#
- 암호코드#dp#BOJ#Python
- Triangle#Sorting#Codility#Python
- 쿼드트리#BOJ#분할정복#Python
- 날짜 계산#BOJ#완전탐색#Python
- 터틀비치#리콘#xbox#controller
- 반복수열#백준알고리즘#Python
- Distinct#Codility#Python
- NumberofDiscIntersections#Codility#Sort#Python
- 순열사이클#BOJ#Python
- django#slicing
- 백준 알고리즘#BackTracking
- 병든 나이트#BOJ#탐욕법#Python
- 배열합치기#분할정복#BOJ#Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함