상세 컨텐츠

본문 제목

[프로그래머스/JS] Lv2. 올바른 괄호

코딩테스트/프로그래머스

by 기며니 2021. 4. 25. 16:03

본문

728x90
728x90

✅ 문제 설명

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어

  • "()()" 또는 "(())()" 는 올바른 괄호입니다.
  • ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.

'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.

🔎 제한 사항

  • 문자열 s의 길이 : 100,000 이하의 자연수
  • 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.

입출력 예

💡 내 코드

function solution(s){
    let result = 0;
    for(let i of s){ // 문자열에서 한글자씩 가져오기
        i==='(' ? ++result : --result; // '(' 이라면 +1 ')' 이면 -1
        if(result <=-1) return false; // ')'로 시작하면 올바르지 않은 괄호 false 반환 
    }
    return result > 0 ? false: true; // result가 0보다 크면 ()가 남아있다는 것 false 반환 작으면 true! 
}

📝 채점 결과

정확성: 69.5

효율성: 30.5

합계: 100.0 / 100.0

🙌 후기

처음에 괄호를 삭제해나갔었다가 시간이 너무 오래 걸리는 것 같다고 생각이 들어서 다른 방법을 찾으려고 노력했습니다. 그래서 '('는 +를 해주고 ')'는 -를 해서 그 값으로 true, false를 반환할 수 있도록 했습니다. 괄호 문제를 처음 접했어서 오랜 시간이 걸렸습니다. 다음에는 비교적 짧은 시간 안에 풀 수 있을 거라고 생각합니다.

728x90
728x90

관련글 더보기

댓글 영역