개발로그필름
[프로그래머스/JS] 영어가 싫어요 본문
728x90
반응형
SMALL
https://school.programmers.co.kr/learn/courses/30/lessons/120894
사람의 머리로는 0은 zero다 라는걸 알아서 빠르게 변환할 수 있지만
컴퓨터에게 이걸 어떻게 알려줘야 할까 고민하는 시간이 길었던 문제
바꿔야하는 숫자가 zero부터 nine이고 반복문을 0부터 10까지 돌리자 라는 생각이 떠오른 순간 빠르게 풀 수 있었다
나의 풀이
js
function solution(numbers) {
const numArray = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
for(let i = 0; i < numArray.length; i++){
numbers = numbers.split(numArray[i]).join(i)
}
return Number(numbers)
}
- 문자열을 숫자로 바꾸기 위해 Number(string)을 했는데 +(string)을 해도 숫자로 바뀐다
다른 사람 풀이
js
function solution(numbers) {
const obj = {
zero: 0, one: 1, two: 2, three: 3, four: 4,
five: 5, six: 6, seven: 7, eight: 8, nine: 9
};
const num = numbers.replace(/zero|one|two|three|four|five|six|seven|eight|nine/g, (v) => {
return obj[v];
});
return Number(num);
}
- object를 사용해서 코드 짜는게 바로 떠오르지는 않지만 이렇게 풀 수도 있구나
- replace()에서 함수를 전달할 수도 있었다니!
- 정규식 익숙해지기
반응형
LIST
'coding test > 프로그래머스' 카테고리의 다른 글
[프로그래머스/JS] 한 번만 등장한 문자 (0) | 2024.03.01 |
---|---|
[프로그래머스/JS] 인덱스 바꾸기 (0) | 2024.02.24 |
[프로그래머스/JS] n의 배수 (1) | 2023.11.19 |
[프로그래머스/JS] 더 크게 합치기 (1) | 2023.11.19 |
[프로그래머스/JS] 문자열 곱하기 (0) | 2023.11.16 |
Comments