Q. 문제: 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를 들어 n이 12345이면 [5, 4, 3, 2, 1]을 리턴합니다.
제한 조건: n은 10,000,000,000이하인 자연수입니다.
입출력 예
n | return |
12345 | [5, 4, 3, 2, 1] |
내가 푼 답
function solution(n) {
return String(n)
.split('')
.reverse()
.map(arr => parseInt(arr));
}
문제를 일단 나누어 생각해본다. (숫자를 문자열로 변환 -> 문자열을 배열로 만들기 -> 배열을 뒤집기 -> 각 문자를 숫자로 변환)
1. 숫자를 문자열로 변환: String(n)을 사용하여 입력 받은 숫자를 문자열로 변환
2. 문자열을 배열로 만들기: split('')을 사용하여 문자열을 개별 문자의 배열로 분할
3. 배열을 뒤집기: reverse()를 사용하여 배열의 순서를 뒤집기
4. 각 문자를 숫자로 변환: .map(arr => parseInt(arr))를 사용하여 각 문자를 다시 정수로 변환
더 쉬운 방법으로는
function reverseDigits(n) {
// 숫자를 문자열로 변환
n = n + "";
// 문자열을 배열로 변환, 뒤집고, 각 문자를 숫자로 변환
return n.split('').reverse().map(Number);
}
// 테스트
console.log(reverseDigits(12345)); // [5, 4, 3, 2, 1] 출력
n = n + ""을 사용하면 된다. 이 방법은 숫자에 빈 문자열을 더함으로써 숫자를 문자열로 변환하는 방법이다. String(n)대신 사용할 수 있는 더 간단한 방법이다. 위의 풀이랑 또 다른 점은 .map(Number)을 사용했다는 점인데, Number함수는 문자열을 숫자로 변환하는 자바스크립트 내장 함수이다. 이 방법은 parseInt를 사용하는 것보다 더 간결하고 읽기 쉽다.
두번째 코드는 이전 코드와 동일한 결과를 제공하지만, 조금 더 간결하고 읽기 쉽다. 자바스크립트의 특성을 잘 활용한 좋은 예시이다.
알고리즘 문제를 풀 때는 다양한 방식으로 접근할 수 있다. 내가 풀고 나서 다른 사람의 풀이를 보는 것은 정말 많은 도움이 될 수 있다. 그래서 나는 알고리즘 문제를 푸는 것에만 그치지말고 다른 사람의 풀이로도 풀어보는 좋은 습관을 길러야겠다!!!
'알고리즘' 카테고리의 다른 글
알고리즘 코드카타 (약수의 개수와 덧셈) (1) | 2024.08.30 |
---|---|
제일 작은 수 제거하기 (0) | 2024.08.26 |
문자열 길이 문제풀기 (1) | 2024.07.23 |
내일배움캠프 여섯번째 발걸음 (1) | 2024.07.09 |
내일배움 캠프 다섯번째 걸음 (0) | 2024.07.08 |