❗ 문제
출처: 프로그래머스 코딩 테스트 연습,
https://school.programmers.co.kr/learn/courses/30/lessons/12932
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요.
예를 들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
❓ 나의 풀이
function solution(n) {
return String(n)
.split("")
.reverse()
.map((numStr) => Number(numStr));
}
문자열로 변환하는 String, 문자열을 자르는 split, 배열을 반전시키는 reverse, 숫자로 변환하는 Number
마지막으로 map 함수를 이용해서 풀었다.
문제에 맞게 알맞은 메서드를 사용하면 간단하게 구할 수 있는 문제였다.
우선, 뒤집는다 → reverse()
근데 reverse 메서드는 배열일 때 사용 가능하기 때문에 자연수 n 의 형태를 바꿔줘야 한다.
자연수 n을 배열로 바꿔주기 위해서는 먼저 문자열로 변환해주어야 한다.
문자열로 변환하는 String 메서드를 사용해 자연수 n 의 형태를 "12345" 로 바꾼다.
그다음 문자열을 배열로 바꿔주면 된다.
이때, split 메서드를 사용하면 ["1", "2", "3", "4", "5"] 형태의 배열을 얻을 수 있다.
++) split()
문자열을 주어진 구분자로 나누어 배열로 변환하는 함수이다.
풀이 코드에서는 split("") 빈 문자열을 구분자로 사용하였고,
빈 문자열로 지정하면 원본 문자의 모든 문자를 요소로 가지는 배열을 반환한다.
즉, 원본 문자 "12345" 의 모든 문자 "1", "2", "3", "4", "5" 를 요소로 가지는 배열을 반환한다는 의미이다.
이제, 배열 형태가 되었으니 reverse 메서드를 이용해 배열을 뒤집고, → ["5", "4", "3", "2", "1"]
최종적으로 원하는 형태는 [5, 4, 3, 2, 1] 이므로, 배열의 각 요소를 다시 숫자형태로 변환해주어야 한다.
map 함수를 이용해 구할 수 있다.
map 함수는 배열의 모든 요소를 순회하며, 조건에 맞는 새로운 배열을 반환한다.
그럼 우리는 map 함수를 이용해 배열의 요소를 순회하면서 Number 로 바뀐 새로운 배열을 얻으면 된다.
++) map((numStr) => Number(numStr))
여기서 numStr 은 배열의 요소를 의미하고, 화살표 오른쪽 코드는 반환할 배열의 요소를 의미한다.
즉, numStr 은 "5", "4", "3", "2", "1" 을 하나씩 돌면서 Number("5"), Number("4")...
이런 식으로 숫자로 변환된 새로운 배열을 반환하는 것이다. → [5, 4, 3, 2, 1]
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 내 p와 y의 개수 (Level 1, JavaScript) (0) | 2024.09.09 |
---|---|
[프로그래머스] 하샤드 수 (Level 1, JavaScript) (0) | 2024.09.04 |
[프로그래머스] 약수의 합 (Level 1, JavaScript) (0) | 2024.08.27 |
[프로그래머스] 세균 증식 (Level 0, JavaScript) (0) | 2024.08.12 |
[프로그래머스] 7의 개수 (Level 0, JavaScript) (0) | 2024.08.05 |