인프런 커뮤니티 질문&답변

으하하님의 프로필 이미지
으하하

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

질문있습니다!

작성

·

140

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

section6의 2번문제 괄호문자제거에서요 

while(stack.pop() !== '('); 이런식으로 했을 땐 무한루프가 안도는데 아래와 같이하면 왜 무한루프가 돌까요 같은 코드아닌가요??

for (let x of s) {
if (x === ')') {
while (stack.pop() !== '(') {
stack.pop();
}
} else stack.push(x);
}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

위에 코드는 while문이 한 번 돌때 스택에서 자료를 두번 꺼냅니다. 

while (stack.pop() !== '(') { //스택에서 자료를 하나 꺼내 '(' 인지 아닌지 확인.
stack.pop(); //스택에서 하나 꺼낸다. 여기서 '(' 괄호를 그냥 꺼내버릴 수 있습니다.
}
으하하님의 프로필 이미지
으하하

작성한 질문수

질문하기