본문 바로가기
front-end 공부하기/코딩테스트

[코딩 테스트 연습] 정수 내림차순으로 배치하기 (javascript)

by 치즈도넛 2022. 9. 28.
반응형

문제

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰 것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를 들어 n이 118372면 873211을 리턴하면 됩니다.

 

풀이

function solution(n) {
    answer =  Number(n.toString().split("").sort().reverse().join(""));
    return answer;
}

 

Array.prototype.sort()

배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환

const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]

const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]

문제는 1, 10000이 있다면 1을 앞으로 정렬한다. 이 문제를 해결하기 위해서는

sort안에 함수를 넣어서 표현한다. (위의 문제풀이는 한자리수만 있기 때문에 함수를 쓰지 않았다)

const numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
  return a - b;
});
console.log(numbers);

// [1, 2, 3, 4, 5]

numbers.sort(function(a, b) {
  return b - a;
});
console.log(numbers);

// [5, 4, 3, 2, 1]

 

Array.prototype.reverse()

배열의 순서를 반전

const array1 = ['one', 'two', 'three'];
console.log('array1:', array1);
// expected output: "array1:" Array ["one", "two", "three"]

const reversed = array1.reverse();
console.log('reversed:', reversed);
// expected output: "reversed:" Array ["three", "two", "one"]

// Careful: reverse is destructive -- it changes the original array.
console.log('array1:', array1);
// expected output: "array1:" Array ["three", "two", "one"]

 

Array.prototype.join()

배열의 모든 요소를 연결해 하나의 문자열로 만든다

const elements = ['Fire', 'Air', 'Water'];

console.log(elements.join());
// expected output: "Fire,Air,Water"

console.log(elements.join(''));
// expected output: "FireAirWater"

console.log(elements.join('-'));
// expected output: "Fire-Air-Water"
반응형

댓글