[LeetCode] Goal Parser Interpretation

준규·2022년 8월 28일
0

Goal parser 는 "G"를 "G"로 "()"를 "o"로 "(al)"을 "al"로 해석해준다고 한다

"G", "()" , "(al)"로 이루어진 문자열 command가 주어질 때 Goal parser를 이용하여 해석한 문자열을 리턴하는 문제이다

Example을 보면

command를 순회하면서 조건에 맞는 문자열을 알맞게 치환하여 리턴해주면 될것 같았다

const interpret = function(command) {
    let result = ""
    let i = 0;
    while(i < command.length) {
        if(command[i]==="G") {
            result+="G";
            i++;
        }else if (command[i]==="("){
            if(command[i+1] === ")") {
                result+= "o";
                i+=2;
            }else{
                result+="al";
                i+=4;
            }
        }
    }
    return result
};

command를 앞에서부터 순회하면서 조건에 맞는지 체크를 한다

먼저 현재문자가 "G"인지 "("인지에 따라 크게 두 갈래로 나뉘어진다

현재 문자가 "G"라면 result에 "G"를 넣어주고 i를 하나 증가 시켜준다

그 다음 문자가 "("라면 여기서 두가지로 또 나뉠 수 있다

다음 문자가 ")"이거나 다른 문자가 오는경우인데

command는 "G", "()", "(al)"로만 이루어져 있으므로

만약 다음 문자가 ")"라면 result에 "o"를 넣어주고 i를 2 증가시켜준다

만약 다음 문자가 ")"가 아니라면 result에 "al"을 넣어주고 i를 4증가시켜준다

그 후 마지막으로 result를 리턴해준다

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글