⚡문제정보
스택을 이용하면 쉽게 풀 수 있는 문제입니다.
leetcode에서 비슷한 문제를 풀었는데 그것보다 조건이 좀 더 쉽네요!
🙄제한사항
문자열 s의 길이 : 100,000 이하의 자연수
문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.
🔍접근방법
stack을 구현하기 위해 값을 저장해줄 변수를 선언하고
for문을 순회하며 문자열이 '('인 경우 push
')' 인 경우 pop해준다.
🔍나의 풀이
function solution(s){
let stack = []
if(s[0] == ")") return false
for(i=0 ; i<s.length ; i++) {
if(s[i] == "(" ) {
stack.push(s[i])
}
else if(s[i] == ")") {
stack.pop()
}
}
return stack.length != 0 ? false : true
}
간단히 구현할 수 있었습니다.
밑은 코드 설명입니다.
function solution(s){
let stack = []
//stack 시켜줄 배열 선언
if(s[0] == ")") return false
//시작이 닫힌괄호로 시작하면 false
for(i=0 ; i<s.length ; i++) {
if(s[i] == "(" ) {
stack.push(s[i])
}
//(인 경우 stack에 push
else if(s[i] == ")") {
stack.pop()
}
// )인 경우 pop
}
return stack.length != 0 ? false : true
//모든 괄호가 잘 닫혔다면 stack의 길이는 0이어야함
}
반응형
'programmers' 카테고리의 다른 글
[Programmers Level 1] 소수찾기 Javascript (0) | 2022.12.12 |
---|---|
[Programmers Level 1] 이상한 문자 만들기 Javascript (0) | 2022.12.12 |
[Programmers Level 1 해시] 완주하지 못한 선수 Javascript (0) | 2022.12.12 |
[Programmers Level 1 정렬] K번째 수 Javascript (1) | 2022.12.11 |
[Programmers Level 0] 로그인성공? Javascript (0) | 2022.12.10 |