728x90
https://programmers.co.kr/learn/courses/30/lessons/81301
문제
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
- 1478 → "one4seveneight"
- 234567 → "23four5six7"
- 10203 → "1zerotwozero3"
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다.
숫자 영단어
0 | zero |
1 | one |
2 | two |
3 | three |
4 | four |
5 | five |
6 | six |
7 | seven |
8 | eight |
9 | nine |
제한 사항
- 1 ≤ s의 길이 ≤ 50
- s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.
- return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다.
결괏값 예시
s | result |
"one4seveneight" | 1478 |
"23four5six7" | 234567 |
"2three45sixseven" | 234567 |
"123" | 123 |
기본 제공 틀
function solution(s) {
var answer = 0;
return answer;
}
풀이 [JavaScript]
이번 문제는 간단히 replace함수와 정규표현식으로 풀어보았습니다.
들어온 s를 replace함수가 돌면서 zero, one, two...각각의 단어들을 찾고 찾은 단어들을 해당 숫자로 바꾼 후, 입력된 값이 문자열이기 때문에 숫자로 변환해서 리턴해주었습니다.
728x90
function solution(s) {
return Number(s.replace(/zero/gi,"0").replace(/one/gi,"1").replace(/two/gi,"2").replace(/three/gi,"3").replace(/four/gi,"4").replace(/five/gi,"5").replace(/six/gi,"6").replace(/seven/gi,"7").replace(/eight/gi,"8").replace(/nine/gi,"9"));
}
다른 사람의 풀이 [JavaScript]
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);
}
위의 방식은 다른 분의 풀이인데요, 배열에 주어진 글자들을 넣어주고, 해당 글자와 일치하는 문자를 기준으로 split을 해줍니다. 기준이 된 예를 든 zero는 사라지게 되고, 뜯어진 그 부분의 기준을 해당 값의 인덱스를 기준으로 join을 해주어 원래 있던 zero 자리엔 0이 대신하여 들어가게 됩니다.
채점 결과 [JavaScript]
728x90
'알고리즘 스터디 > 프로그래머스 스킬체크 레벨 1(끝)' 카테고리의 다른 글
[프로그래머스 스킬체크 레벨 1] [1차] 비밀지도 풀이 및 설명 - 자바스크립트[JavaScript] (0) | 2021.07.19 |
---|---|
[프로그래머스 스킬체크 레벨 1] 문자열 내 마음대로 정렬하기 풀이 및 설명 - 자바스크립트[JavaScript] (0) | 2021.07.19 |
[프로그래머스 스킬체크 레벨 1] 3진법 뒤집기 풀이 및 설명 - 자바스크립트[JavaScript] (0) | 2021.07.18 |
[프로그래머스 스킬체크 레벨 1] 시저 암호 풀이 및 설명 - 자바스크립트[JavaScript] (0) | 2021.07.18 |
[프로그래머스 스킬체크 레벨 1] 최대공약수와 최소공배수 풀이 및 설명 - 자바스크립트[JavaScript] (0) | 2021.07.15 |
댓글