
우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.
| age | result |
|---|---|
| 23 | "cd" |
| 51 | "fb" |
| 100 | "baa" |
입출력 예 #1
age가 23이므로 "cd"를 return합니다.
입출력 예 #2
age가 51이므로 "fb"를 return합니다.
입출력 예 #3
age가 100이므로 "baa"를 return합니다.
function solution(age) {
let arr = Array.from(String(age));
let arr2 = [];
let answer = '';
for(let i = 0; i < arr.length; i++) {
arr2[i] = 97 + Number(arr[i])
answer += String.fromCharCode(arr2[i]);
}
return answer;
}
age가 23이라고 예를 들어보자.
23을 ['2', '3'] 이렇게 하나의 문자로 배열에 넣으려면 우선 23을 문자열로 변환해야 한다.
String(age)은 "23"이 되고, 이를 '2'와 '3'으로 분리하려면
split()함수를 사용하거나,Array.from()을 사용해도 된다.String(age).split('') 또는 Array.from(String(age))
다음은 아스키코드를 활용하였다. 97부터 순서대로 a~j이다.
배열 arr2에다 나온 숫자 값(아스키코드)을 문자로 변환 시키는 fromCharCode() 함수를 사용하였다.
하지만, 이보다 더 간단하고 명료한 풀이가 있었다.
다른 사람의 풀이를 살펴보자.
function solution(age) {
return age.toString().split("")
.map((v) => "abcdefghij"[v]).join("");
}