일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 개발7년차매니저1일차
- 박종천
- 데이터야놀자
- 개발자로살아남기
- 코딩인터뷰
- 테스트주도개발
- 켄트백
- kafka
- 2016년회고
- 데이터유통
- Raw-Request-URI
- 동시성
- spray
- coursera
- hackercup2017
- 2017회고
- wait region split
- 단위테스트
- 개발자
- 회고
- 실전사례
- 알고스팟
- clean code
- 해커컵
- 데이터플랫폼
- functional thinking
- datalake
- 클린코드
- 데이터레이크
- 함수형 사고
Archives
- Today
- Total
Software Engineering Note
Mismatched Parenthesis 본문
문제: FIXPAREN / 구현, 자료구조
잘못 매칭된 괄호를 수정하는 문제.
괄호마다 우선순위가 있고, 잘못된 매칭인 경우 우선순위가 높은 괄호로 변환해야 한다.
스택에 무조건 쌓기만 하고 나중에 빼면 출력 순서가 보장되지 않으므로 임의로 index를 지정할 수 있는 배열을 출력용으로 사용했다.
해결전략
1. 왼쪽 괄호인 경우 스택에 넣는다. 이때, (입력 문자열에서의 위치, 문자) 가 저장되는 정보단위가 된다.
2. 오른쪽 괄호인 경우 스택에서 왼쪽괄호를 pop한다.
(문제 조건을 읽어보면 오른쪽 괄호전에는 반드시 왼쪽 괄호가 저장됨을 보장할 수 있다.)
3. 왼쪽, 오른쪽 우선순위를 비교해서 우선순위가 높은 문자로 변환한다. 그리고 출력용 배열에 저장한다.
코드: https://github.com/xgate/algospot/blob/master/DATA_STRUCTURE/FIXPAREN.cpp
'알고리즘 > 알고스팟' 카테고리의 다른 글
최소, 최대 정사각형 찾기 2 (0) | 2015.01.03 |
---|---|
최소, 최대 정사각형 찾기 1 (0) | 2014.12.27 |
Weekly Calendar (0) | 2014.08.25 |
째능 교육 (0) | 2014.08.23 |
DARPA Grand Challenge (0) | 2014.08.16 |