본문 바로가기
Coding Test/Programmers

[Programmers] (월간 코드 챌린지 시즌2) Lv 2. 괄호 회전하기

by song.ift 2023. 2. 6.

https://school.programmers.co.kr/learn/courses/30/lessons/76502

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

const solution = (s) => {
    const obj = {
        "[": "]",
        "(": ")",
        "{": "}",
    };
    return [...s].reduce((acc, el, idx) => {
        const stack = [];
        for (let i = 0; i < s.length; ++i) {
            const a = (idx + i) % s.length;

            if (Object.keys(obj).find((key) => key === s[a])) stack.push(s[a]);
            else if (Object.values(obj).find((value) => value === s[a]) 
                     && obj[stack[stack.length - 1]] === s[a]) stack.pop();
            else return acc;
        }
        
        return (stack.length ? acc : ++acc);
    }, 0);
};

GitHub : https://github.com/developeSHG/Algorithm-Baekjoon_Programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/lv2/76502.%E2%80%85%EA%B4%84%ED%98%B8%E2%80%85%ED%9A%8C%EC%A0%84%ED%95%98%EA%B8%B0

 

GitHub - developeSHG/Algorithm-Baekjoon_Programmers: 백준 and 프로그래머스 소스코드

백준 and 프로그래머스 소스코드. Contribute to developeSHG/Algorithm-Baekjoon_Programmers development by creating an account on GitHub.

github.com

 

댓글