승표의 코드


나경의 코드


수지의 코드

function solution(s){
    let answer = true;
    // 1. 괄호의 개수를 체크하는 변수를 생성한다.
    let bracketList = 0;

    // 2. 괄호 문자열(s)에서 괄호 하나하나 확인한다.
    for(let i = 0; i < s.length; i++) {
        //  2-1. 열린 괄호를 찾으면 변수의 값을 1 증가시킨다.
        if(s[i] === '(') {
            bracketList++;
        // 2-2. 닫힌 괄호를 찾으면, 현재 변수의 값이 양수인지 확인한다.
        } else {
            // 2-2-1. 값이 양수라면 열린 괄호가 앞에 있으므로 
            //        정상적임을 판단하여 변수의 값을 1 감소시킨다.
            if (bracketList > 0) {
                bracketList--;
            // 2-2-2. 값이 양수가 아니라면 열린 괄호가 앞에 없는 
            //        비정상적임을 판단하여 false를 반환한다.
            } else {
                answer = false;
                break;
            }
        }
    }

    // 3. 모든 괄호 문자열(s)를 확인한 결과 변수가 0보다 크면 
    //    열린 괄호가 더 많다는 의미이므로 false를 반환한다.
    if(bracketList > 0) {
        answer = false;
    }

    // 4. 변수가 0이라면 true를 반환한다.
    return answer;
}