행복을 담는 블로그

[프로그래머스] 연습문제) 정수 내림차순으로 배치하기/ array.join( ) 메소드 본문

Algorithm/프로그래머스

[프로그래머스] 연습문제) 정수 내림차순으로 배치하기/ array.join( ) 메소드

hyun0zin 2024. 1. 15. 10:05

<문제 풀이 순서 먼저 "글"로 생각해보기>

  1. 삽입 정렬을 이용하여 문제를 풀어야겠다.
  2. 우선 숫자 -> 문자열로 : toString
  3. 문자열 split 이후 -> 배열로 만들기 : map
  4. 배열 안 문자 크기 비교하여 내림차순으로 정렬 : 이중루프 사용
  5. 배열을 다시 풀어서 문자열로 만들기 : join
  6. 문자열 -> 정수로 만들기 : parseInt
function solution(n) {
    // 삽입 정렬로 풀기
    // n : 숫자 118372 -> 8,7,3,2,1,1         
    //숫자를 배열로 : [8,7,3,2,1,1]

    //map을 돌려서 배열 
    const newArr = n.toString().split('').map(Number); 
    console.log(newArr); // [1,1,8,3,7,2]

    // 삽입 정렬
    // 이중 루프
    for(let i=1; i < newArr.length; i++) {
        for (let j=i; j >0; j--) {
            if(newArr[j-1] < newArr[j]){
                let temp = newArr[j-1];
                newArr[j-1] = newArr[j];
                newArr[j] = temp;
            } else {
                break;
            }
        }
    }
    return parseInt(newArr.join(''))
}

📌 Array.prototype.join()
: 배열을 다시 문자열로


: Array 인스턴스의 Join() 메서드는 배열의 모든 요소를 쉼표나 지정된 구분 문자열로 구분하여 연결한 새 문자열을 만들어 반환한다.
배열에 항목이 하나만 있는 경우, 해당 항목은 구분 기호를 사용하지 않고 반환됩니다.


즉, 배열을 풀어서 다시 문자열 형태로 반환한다.
join() 소괄호 안에 뭐가 들어가느냐에 따라 문자열의 형태가 달라진다!
MDN 문서 참고

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

console.log(newArr.join()); // "Fire,Air,Water" // 매개변수 생략 시, 쉼표(,)로 구분.

console.log(newArr.join('')); // "FireAirWater"

console.log(newArr.join('-')); // "Fire-Air-Water"