[Lv.0] 외계행성의 나이 *

01수정·2022년 11월 10일
0
post-thumbnail

<입문 100문제> Day 8 - 배열, 구현, 수학

문제



풀이

function solution(age) {
    let alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
    return String(age).split('').map((num) => alphabet[num]).join('')
}

해답

function solution(age) {
  return [...('' + age)].map(num => String.fromCharCode('a'.charCodeAt(0) + +num)).join('');
}

해답풀이

(1) 매개변수 age 의 값이 Number 형이므로 String 함수 map 을 쓰기 위해 String 형으로 변경

String(age)``` 또는 ```('' + age)

(2) 매개변수 age 의 값을 하나씩 순회하며 처리할 수 있도록 map

String(age).split('')``` 또는 ```[...('' + age)]

string.split([separator], [split]) : 문자열을 일정한 구분자로 잘라서 배열로 저장

(3) 알파벳 a 를 charCodeAt 하여 구한 값 97 에
매개변수 age 값의 각 숫자(+ 를 붙여 String 에서 Number 형으로) 를 더하여 구한 값에 fromCharCode 를 하여 각 숫자에 대응하는 알파벳 구하기

String.fromCharCode('a'.charCodeAt(0) + +num)
// 예시
String.fromCharCode(97) 					// 'a'
'a'.charCodeAt(0)							// 97
String.fromCharCode('a'.charCodeAt(0) + 5)	// 'f'
  • 유니코드 -> 문자열 string.fromCharCode(num[, ...])
  • 문자 -> 유니코드 string.prototype.charCodeAt(index)

참고자료

profile
새싹 FE 개발자

0개의 댓글