반응형
https://programmers.co.kr/learn/courses/30/lessons/81301?language=javascript
나의 풀이
정규 표현식을 사용하여 0부터 9까지 replace 함수를 메소드 체이닝 하였다.
그리고 parseInt로 감싸서 숫자로 반환하였다.
function solution(s) {
return parseInt(s.replace(/zero/g, "0")
.replace(/one/g, "1")
.replace(/two/g, "2")
.replace(/three/g, "3")
.replace(/four/g, "4")
.replace(/five/g, "5")
.replace(/six/g, "6")
.replace(/seven/g, "7")
.replace(/eight/g, "8")
.replace(/nine/g, "9"));
}
만약 문제에서 s의 문자열에 대문자를 섞었다면 g 플래그에 i 플래그를 추가했을 것이다(g: 글로벌, i: 대소문자를 구분하지 않음).
문제를 이해하자마자 정규 표현식부터 생각이 났던 것 같다..!
변수를 따로 선언하지 않고 코드 자체를 리턴하는 습관은 가독성을 위해서라도 고쳐야 할 것 같다.
다른 사람의 풀이
function solution(s) {
let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
var answer = s;
for(let i=0; i< numbers.length; i++) {
let arr = answer.split(numbers[i]);
answer = arr.join(i);
}
return Number(answer);
}
이 코드는 반복문을 사용하여 numbers의 각 문자열 값으로 split 한 뒤에,
join을 사용하여 쪼갠 값에 해당하는 숫자를 집어넣는 방식을 사용하였다.
코드를 보고 split과 join의 활용성을 환기시킬 수 있었다.
반응형
'IT > Algorithm' 카테고리의 다른 글
프로그래머스) 체육복 (0) | 2021.10.01 |
---|---|
프로그래머스) 최소 직사각형 (0) | 2021.10.01 |
Space Complexity - 공간 복잡도 (0) | 2021.10.01 |
Big - O Notation) 빅오 표기법과 시간 복잡도 (0) | 2021.09.29 |
프로그래머스) 내적 (0) | 2021.07.06 |