01.
코딩테스트문제 > 연습문제 > 자연수 뒤집어 배열로 만들기
문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한 조건
- n은 10,000,000,000이하인 자연수입니다.
입출력 예

다른 사람의 풀이
solution=(n)=>{
return((n+"").split("").reverse().map((v)=>parseInt(v)));
}
(n+"")
숫자로 들어오는 n을 문자열로 변환하기 위해 String(n)을 사용할 수도 있지만, 자바스크립트의 특성상 (n+"")을 붙이면 자동으로 변환된다!!
풀이 해설
split함수를 통해 ["1","2","3","4","5"]배열로 만들고, reverse()함수를 통해 뒤집는다.
map함수를 통해 배열안에 있는 인수를 모두 int로 변환하여
return 한다.
함수 설명
1. split함수 : 문자열을 일정한 구분자로 잘라서 배열로 저장
사용법: [ ]<필수아님
string.split ( [*separator] , [*limit] )
파라미터를 입력하지 않는 경우 => 원본 문자열 그대로 한칸짜리 배열에 저장한다
* separator;구분자
구분자를 기준으로 배열을 잘라서 저장한다
예)
separator가 " "인 경우 => 스페이스바를 기준으로 단어들을 나눠서 배열에 저장한다 // 단어별 저장
separator가 ""인 경우 => 스페이스바까지 글자로 취급하여, 한 글자씩 배열에 저장한다 //글자별 저장
separator가 "(특정기호)"인 경우 => 특정기호를 기준으로 나눠서 배열에 저장한다.
*limit;
만들어질 배열의 최대치를 설정한다.
2. reverse함수 : 배열의 순서를 뒤집어 배열로 저장된다.
사용법:
array.reverse();
* 원본 배열이 변경됨 !!
조심하세용
3. map함수: 배열 내 각각의 요소에 함수를 적용시킨 결과를 모아 새로운 배열을 반환한다.
1개의 입력이 아니라, 입력받는 아이템이 많아서 함수를 각각 적용시켜줘야할 때 사용한다. (split 결과를 이용하기 딱!!)
사용법:
array.map(콜백함수([*element], [*index], [*array]){
// 반환값(return)을 넣으면 새로운 배열의 요소가 됨
},[*thisArg]);
es6 문법사용)
array.map(([*element], [*index], [*array])=>[*thisArg]);
* element ; 현재 요소
* index ; 현재 요소의 인덱스(0부터)
* array ; 원래 배열
* thisArg ;
콜백함수를 사용할 때 this로 사용되는 값 (Argument)
순서대로 적용이라 element만 사용하는 경우 (v) (n)등 다양한 변수명을 사용하기도 함!
02.
코딩테스트문제 > 연습문제 > 자릿수 더하기
문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한 조건
- N의 범위 : 100,000,000 이하의 자연수
입출력 예

입출력 예 설명
입출력 예 #1
문제의 예시와 같습니다.
입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
다른 사람의 풀이
solution=(n)=>{
return (n+"").split("").reduce((acc, curr) => acc + parseInt(curr), 0)
}
(n+"")
숫자로 들어오는 n을 문자열로 변환하기 위해 String(n)을 사용할 수도 있지만, 자바스크립트의 특성상 (n+"")을 붙이면 자동으로 변환된다!!
parseInt() -> map(Number)로도 사용 가능하다!!
풀이 해설
split함수를 통해 ["1","2","3"] 배열로 만들고,
reduce()함수를 각 문자를 숫자로 변환하고 acc에 누적한 값을 return한다.
함수 설명
1. reduce함수: 배열 내 각각의 요소에 함수를 적용시킨 결과값을 반환한다. (map함수와는 뱉는 자료형이 다르다)
!!누적 계산을 할 때 자주 사용된다!!
사용법:
array.reduce(콜백함수(accumulator, currentValue, [*Index], [*array]){
// 반환값(return)을 넣으면 다음 누적값(accumulator)을 만든다.
},[*initialValue]);
es6 문법사용)
array.reduce((accumulator, currentValue, [*Index], [*array]))=>콜백함수,[*initialValue]);
* accumulator ; 누적값,
콜백함수의 반환값(return)을 누적한 값이다
* currentValue ; 현재 요소 값
* Index ; 현재 요소의 인덱스
* array ; 호출한 배열
* initialValue ; 초기값 (없으면 배열 첫 번째 요소가 기본 시작값이 된다)
*콜백함수가 반환하는 값은 순회중에 accumulator에 누적되어 최종적으로 하나의 값을 반환한다.
03.
코딩테스트문제 > 연습문제 > 정수 내림차순으로 배치하기
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예

다른 사람의 풀이
solution=(n)=> {
return parseInt((n + '').split('').sort((a, b) => b - a).join(""));
}
(n+"")
숫자로 들어오는 n을 문자열로 변환하기 위해 String(n)을 사용할 수도 있지만, 자바스크립트의 특성상 (n+"")을 붙이면 자동으로 변환된다!!
풀이 해설
문자열은 sort가 안되니 split함수를 통해 ["1","1","8","3","7","2"] 배열로 만들고,
sort함수를 통해 내림차순 정렬을 진행한다!!
출력값이 숫자라서 join함수를 통해 문자열을 합치고 parseInt로 숫자로 변환한다.
함수 설명
1. sort함수 : 배열을 정렬하기 위해 사용한다.
사용법:
array.sort([compareFunction]);
array.sort((a, b)=>{
return 오름차순식/내림차순식;
}
파라미터가 입력하지 않는 경우 => 배열의 요소들은 문자열로 취급되며 유니코드 값 순서대로 정렬된다.
*compareFunction ; 비교함수, 정렬하기 위해 요소들을 비교해주는 비교함수다.
array.sort((a, b) => a - b); // 오름차순
array.sort((a, b) => b - a); // 내림차순
* return 값이 0보다 작으면 (-, 음수, return < 0) => a가 b보다 앞에 온다
* return 값이 0보다 크면 (+, 양수, return >0) => b가 a보다 앞에 온다
* return ===0 => 순서 그대로 유지
1. join함수 : 배열의 모든 요소들을 연결해 하나의 문자열로 만든다
사용법:
array.join([separator])
파라미터를 입력하지 않는 경우 => 원소들의 쉼표로 구분한다 / 출력결과: 요소1,요소2,요소3
* separator;구분자
구분자를 기준으로 배열을 합쳐서 저장한다.
* separator가 ''인 경우 ( arr.join('') ) => 출력결과: 요소1요소2요소3
* separator가 '-'인 경우 ( arr.join('-') ) => 출력결과: 요소1-요소2-요소3
중요한 점
1. 아는 함수라고 아무때나 사용할 수 있는게 아니라 함수가 사용할 수 있게,
배열이나 문자열처럼 해당되는 자료형으로 전처리하는 과정이 중요하다는 걸 느꼈다.
2. map은 "모든 요소 변환", reduce는 "누적", sort는 "정렬" 하는 함수다!!
3. 함수는 개념을 완벽히 익히기보다 자주 사용하여 익숙해지는 것이 더 도움되는 것 같다.(물론 개념을 완벽히 익히는 것도 중요하다)
'STUDY > [ JavaScript ]' 카테고리의 다른 글
| 캐시 추가하기 (0) | 2025.09.23 |
|---|---|
| 리팩토링 / HTTP ERROR CODE / DELETE PUT (0) | 2025.09.22 |
| 이차원배열 Array.from() arr.fill() (1) | 2025.09.22 |
| [JS함수] splice / filter (0) | 2025.09.18 |
| JS Math에서 pow()와 sqrt() / 제곱과 제곱근 (0) | 2025.09.14 |