문제 링크
- https://www.acmicpc.net/problem/2800
문제 출처
- 2011/2012 COCI Contest #6 3번
사용 알고리즘
- 스택
- 비트마스크
시간복잡도
- 문자열의 길이를 n, 괄호 쌍의 개수를 m이라 하면
O(2mn)
풀이
- 가장 먼저 str이라는 문자열을 선언한 뒤, str을 입력받습니다.
- 괄호의 인덱스를 저장할 vector 를 하나 생성합니다.
- str을 순회하면서 ( 가 나오면 push하고, ) 가 나오면 pop을 한 뒤, ) 의 인덱스와 짝이 되는 (의 좌표를 저장합니다.
- bitmask 기법을 이용하여 괄호를 일정 부분 제거한 str을 각각 또 다른 vector에 저장합니다.
- 문자열을 오름차순으로 정렬합니다.
- 중복되지 않게 정렬된 결과를 출력합니다.
전체 코드
1 |
|