반응형
▷ 문제 : AVAILABLE LESSONS 7 - Brackets (Easy)
▷ 해결 날짜 : 2022.04.20
▷ 소요 시간 : 30분
▷ 풀이 과정 :
괄호의 짝을 맞추는 문제이다.
일단 Lesson7 은 Stacks and Queues 문제이기 때문에 이 문제는 Stack을 사용하면 된다는 것을 알 수 있다.
여는 괄호가 나왔을 때 스택에 담아두고 닫는 괄호가 나왔을때 하나씩 배서 비교해주는 로직을 만들어주면 구현할 수 있다.
몇가지 예외 사항에 대해서만 처리를 해주면 되는데,
여는 괄호가 없는데 닫는괄호가 나왔을 경우, 여는 괄호가 남았는데 닫는 괄호가 끝났을 경우만 처리해주면 된다.
▷ 구현
function solution(S) {
const nested = new Map([
['{', 3], ['}', 3],
['[', 2], [']', 2],
['(', 1], [')', 1]
]);
const opened = [];
for(let nest of S){
if(['{', '[', '('].includes(nest)){
opened.push(nest);
}else{
let open = opened.pop();
if(!open) return 0;
if(nested.get(nest) !== nested.get(open)) return 0;
}
}
if(opened.length) return 0;
return 1;
}
▷ 복기 :
요즘들어 좀 더 깔끔하고 성능이 좋은 코드가 뭘까 고민을 많이하게 되는데, 이게 최선인가 싶기도하고 풀고나서 다른사람 코드좀 찾아봐야겠다.
반응형
댓글