leetcode

1678. Goal Parser Interpretation leetcode javascript

냠냠맨 2022. 11. 14. 13:13

 

 

정답률이 아주 높으면서 쉬운 문제입니다.

 

인자인 command는 string형태로주어지며 string의 패턴은 G / () / (al) 셋입니다.

주어진 패턴을 각각 G는 G ()는 o (al)은 al로 바꿔주기만하면되는 문제

패턴이 적으니까 for문과 if문만으로도 처리할 수 있을것같네요

/**
 * @param {string} command
 * @return {string}
 */
var interpret = function(command) {
    let answer = ''
    for(i=0;i<command.length ; i++) {
        if(command[i] == "(" && command[i+1] == ")") {
            answer += "o"
        }
        else if(command[i] == "(" && command[i+1] == "a") {
            answer += "al"
        }
        else if(command[i] == "G") {
            answer += "G"
        }
    }
    return answer
};
 

간단합니다. 정답을 저장해줄 answer 변수를 선언하고

논리곱연산자 &&를 이용해서

현재인덱스와 다음 인덱스의 값이 각각 ( )인 경우엔 o를 저장해주고

현재인덱스와 다음 인덱스의 값이 각각 (a인 경우엔 al을

G인 경우엔 G를 넣어주는것으로 해결했습니다.

 

다른 사람의 풀이

var interpret = function(command) {
    return command.split("()").join("o").split("(al)").join("al");
};
 

저도 어렴풋이 split과 join을 잘 사용하면 풀 수 있지 않으려나했는데

어떻게 구현하면 좋을지 감이 안잡혀서 포기했던 풀이 방법입니다.

이런 풀이를 보면 응용력이 참 중요하다 싶네요

 

반응형