문제 설명
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
제한사항
- numbers는 소문자로만 구성되어 있습니다.
- numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
- 1 ≤ numbers의 길이 ≤ 50
- "zero"는 numbers의 맨 앞에 올 수 없습니다.
입출력 예
numbers | result |
"onetwothreefourfivesixseveneightnine" | 123456789 |
"onefourzerosixseven" | 14067 |
입출력 예 설명
입출력 예 #1
- "onetwothreefourfivesixseveneightnine"를 숫자로 바꾼 123456789를 return합니다.
입출력 예 #2
- "onefourzerosixseven"를 숫자로 바꾼 14067를 return합니다.
문제풀이
- 아래 코드로 테스트를 실행했을 때는 통과했는 데 체점을 하니까 다른 테스트에서 실패가 떴다..
function solution(numbers) {
var answer = "";
const en = [
"zero",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
"ten",
];
answer = numbers;
for (let i = 0; i < en.length; i++) {
const item = en[i];
// numbers 안에 en의 각 index의 값을 출력
var index = answer.indexOf(item);
// index 값이 있다면
if (index > -1) {
// 해당 영어를 숫자로 변환해서 문자열에 대입
answer = answer.replace(item, i);
}
}
return Number(answer);
}
console.log(solution("onetwothreefourfivesixseveneightnine"));
console.log(solution("onefourzerosixseven"));
- 이 분 블로그를 참고해보니 split으로 en의 value를 기준으로 자르고, 잘린 부분은 i로 메꿔주는 방식을 사용하셨다.
많은 참고가 되었습니다...
'코딩 테스트 연습 > Programmers' 카테고리의 다른 글
[프로그래머스] 숫자 찾기 (0) | 2023.07.20 |
---|---|
[프로그래머스] 암호 해독 (0) | 2023.07.19 |
[프로그래머스] 아이스 아메리카노 (0) | 2023.07.17 |
[프로그래머스] 피자 나눠 먹기 (1) (0) | 2023.07.16 |
[프로그래머] 문자열의 앞의 n 글자 (0) | 2023.07.15 |
댓글