정답률이 아주 높으면서 쉬운 문제입니다.
인자인 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을 잘 사용하면 풀 수 있지 않으려나했는데
어떻게 구현하면 좋을지 감이 안잡혀서 포기했던 풀이 방법입니다.
이런 풀이를 보면 응용력이 참 중요하다 싶네요
반응형
'leetcode' 카테고리의 다른 글
46. Permutation (0) | 2022.11.18 |
---|---|
448. Find All Numbers Disappeared in an Array (0) | 2022.11.17 |
39. Combination Sum javascript leetcode (0) | 2022.11.16 |
1365. How Many Numbers Are Smaller Than the Current Number javascript leetcode (0) | 2022.11.15 |
7. Reverse Integer Javascript Leetcode (0) | 2022.11.14 |