티스토리 뷰
문제 출처 - https://programmers.co.kr/learn/courses/30/lessons/12929
코딩테스트 연습 - 올바른 괄호의 갯수 | 프로그래머스
올바른 괄호란 (())나 ()와 같이 올바르게 모두 닫힌 괄호를 의미합니다. )(나 ())() 와 같은 괄호는 올바르지 않은 괄호가 됩니다. 괄호 쌍의 개수 n이 주어질 때, n개의 괄호 쌍으로 만들 수 있는 모든 가능한 괄호 문자열의 갯수를 반환하는 함수 solution을 완성해 주세요. 제한사항 괄호 쌍의 개수 N : 1 ≤ n ≤ 14, N은 정수 입출력 예 n result 2 2 3 5 입출력 예 설명 입출력 예 #1 2개의 괄호쌍으로 [ (())
programmers.co.kr
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int n) {
int answer = 0;
int sum;
vector<int> v;
for(int i=0; i<n; i++) {
v.push_back(1); // 왼쪽 괄호
v.push_back(-1); // 오른쪽 괄호
}
do{
sum = 0;
answer++;
for(int i=0; i<n*2; i++) {
sum += v[i];
if(sum < 0) { // 한번이라도 (왼쪽괄호 < 오른쪽괄호) 이면 틀린 괄호
answer--;
break;
}
}
} while(next_permutation(v.begin(), v.end()));
return answer;
}
-
순열을 이용해 만들 수 있는 괄호의 모든 경우의 수를 찾고
-
올바르지 않은 괄호를 뺌
'ALGORITHM > 프로그래머스' 카테고리의 다른 글
[C++]프로그래머스 - 124 나라의 숫자(level2) (0) | 2019.12.06 |
---|---|
[C++]프로그래머스 - 완주하지 못한 선수(level1) (0) | 2019.12.06 |
[C++]프로그래머스 - 디스크 컨트롤러(level3) (0) | 2019.11.30 |
[C++]프로그래머스 - 큰 수 만들기(level2) (0) | 2019.11.30 |
[C++]프로그래머스 - 나누어 떨어지는 숫자 배열(level1) (0) | 2019.11.30 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Permutation
- 완전탐색
- 코딩테스트
- SW Expert
- C++
- 우선순위큐
- 순열
- 문자열
- 재귀
- 정렬
- 힙
- 스택
- 괄호
- hash
- 파이썬
- SWExpert
- dictionary
- 2020 KAKAO BLIND RECRUITMENT
- BOJ
- 구현
- left join
- combination
- 2019 Kakao Blind Recruitment
- Python
- programmers
- 딕셔너리
- 문자열처리
- 프로그래머스
- 해시
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함