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을 해보니
정답이었다!