🔍 문제
✏️ 풀이 - JS
문자열안에 괄호의 짝이 알맞게 들어가있는지 체크하는 문제이다. 기본적으로 stack의 후입선출을 이용해서 풀었다. 여는 괄호는 따로 arr이라는 배열에 넣어주고, 닫는 괄호가 나왔을 때는 앞에서 여는 괄호가 담긴 arr.pop()
을 해서 가장 마지막의 여는 괄호를 꺼내서 맞는 짝인지 확인해주었다. 참고로, 처음에는 여는 괄호의 짝이 없는(닫는 괄호가 부족한 상황) 예외를 생각하지 못해서 조금 해멨다. if(arr.length !== 0) return 0
로 예외를 잡아주어서 정확도, 성능 모두 100%로 통과하였다.
function solution(S) {
if(S.length === 0) return 1;
let arr = [];
for(let i in S) {
let c = S[i]
if(c === '{' || c === '[' ||c ==='(') {
arr.push(c);
} else {
if(arr.length === 0) return 0; //여는 괄호 없이 바로 닫는 괄호가 나온 경우
if(c === '}' && arr.pop() !== '{') return 0;
if(c === ']' && arr.pop() !== '[') return 0;
if(c === ')' && arr.pop() !== '(') return 0;
}
}
if(arr.length !== 0) return 0 //닫는 괄호가 모자란 경우
return 1;
}
'Algorithm > 문제풀이' 카테고리의 다른 글
Codility Lesson7 - Nesting (0) | 2019.08.12 |
---|---|
Codility Lesson7 - Fish (0) | 2019.08.11 |
Codility Lesson6 - NumberOfDiscIntersections (0) | 2019.08.11 |
Codility Lesson6 - Triangle (0) | 2019.08.10 |
Codility Lesson6 - Distinct (0) | 2019.08.10 |