티스토리 뷰
문제풀이
0 ~ 9로 이루어진 번호 문자열에서 같은 번호로 붙어있는 쌍들을 소거하고 남은 번호로 비밀번호를 만드는 문제다.
예를 들어 아래의 번호 열을 철수의 방법으로 소거하고 알아낸 비밀번호다.
번호 쌍이 소거되고 소거된 번호 쌍의 좌우 번호가 같은 번호이면 또 소거할 수 있다.
번호 문자열을 검사할 때 스택이 비어있지 않고 스택의 top과 번호가 같다면 pop해준다.
스택이 비어있거나 스택의 top과 번호가 같지 않은 경우에는 스택에 번호를 넣어준다.
소거할 수 있는 번호 쌍을 모두 소거했다면 스택에서 번호를 꺼내준다.
이때 순서가 거꾸로이므로 reverse() 함수로 뒤집으면 철수의 방법으로 소거하고 알아낸 비밀번호가 된다.
코드
C++ 코드
Java 코드
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA 1224] 계산기3 C++ (0) | 2021.07.28 |
---|---|
[SWEA 1267] 작업순서 C++ (0) | 2021.07.28 |
[SWEA 1219] 길찾기 C++ (0) | 2021.07.28 |
[SWEA 1218] 괄호 짝짓기 C++ (1) | 2021.07.28 |
[SWEA 1217] 거듭 제곱 C++ (0) | 2021.07.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프로그래머스
- 위상 정렬
- 알고리즘
- 재귀
- 투 포인터
- 큐
- 트리
- 브루트포스
- 두 포인터
- C++
- programmers
- SWEA
- 분할 정복
- 정렬
- Two Pointer
- 그래프
- algorithm
- 문자열
- SW Expert Academy
- BFS
- 백준
- 자바
- Kotlin
- Java
- dfs
- 스택
- 구현
- BOJ
- 이분 탐색
- 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함