⚡문제 유형
문자열
📝문제
"G", "()" ,"(al)" 가 혼합해 입력값으로 들어온다. 이 때 "()"은 o로 변경하고 괄호를 전부 뺀 문자열로 반환해라.
📘예시
Input: command = "G()(al)"
Output: "Goal"
Explanation: The Goal Parser interprets the command as follows:
G -> G
() -> o
(al) -> al
The final concatenated result is "Goal".
Input: command = "G()()()()(al)"
Output: "Gooooal"
Input: command = "(al)G(al)()()G"
Output: "alGalooG
📗풀이
1. split
split("()")을 사용해 먼저 "()" 을 기준으로 slpit을 하고 join("o")을 통해 o로 변경해줬다.
나머지 "(", ")"또한 split을 해주고 각각 join해주는 방식으로 풀었다.
하지만 이렇게 하면 3번의 slpit과, 3번의 join을 거쳐야한다. 따라서 2번과 같은 방법으로 다시 풀었다
2. replaceAll
replaceAll은 문자열에 특정 문자열을 대체해주는 메서드이다.
const p = '철수랑 영희랑 학교가 끝나고 문방구를 갈지 피시방을 갈지 고민하다가 결국 문방구에 갔다';
console.log(p.replaceAll('문방구', '학원'));
> "철수랑 영희랑 학교가 끝나고 학원를 갈지 피시방을 갈지 고민하다가 결국 학원에 갔다"
이런 식으로 모든 문자열을 바꿔주는 역할을 한다.
replace all을 통해 () -> o , (al) -> al 로 변경해주면 된다.
📕코드
var interpret = function (command) {
return command.replaceAll('()','o').replaceAll('(al)','al')
};
var interpret = function (command) {
return command.split("()").join("o").split("(").join("").split(")").join("")
};
'자료구조&알고리즘 > 알고리즘' 카테고리의 다른 글
[LeetCode][JS] 150번 Evaluate Reverse Polish Notation (0) | 2022.06.14 |
---|---|
[LeetCode][JS] 66번 Plus One (0) | 2022.06.13 |
[LeetCode][JS] 976번 Largest Perimeter Triangle (0) | 2022.05.27 |
[LeetCode][JS] 1502번 Can Make Arithmetic Progression From Sequence (0) | 2022.05.27 |
[leetCode][JS] 1822번 Sign of the Product of an Array (0) | 2022.05.27 |