์•Œ๊ณ ๋ฆฌ์ฆ˜/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

Lv.1 ์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

meteorqz6 2024. 7. 2. 18:14

๋ฌธ์ œ ์„ค๋ช…

ํ•จ์ˆ˜ solution์€ ์ •์ˆ˜ n์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค. n์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ํฐ ๊ฒƒ๋ถ€ํ„ฐ ์ž‘์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ์ƒˆ๋กœ์šด ์ •์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด n์ด 118372๋ฉด 873211์„ ๋ฆฌํ„ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

 

์ œํ•œ ์กฐ๊ฑด

  • n์€ 1 ์ด์ƒ 8000000000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ 

n return
118372 873211

 

< ๋‚˜์˜ ํ’€์ด >

function solution(n){
    // 1. ์ •์ˆ˜ n์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ 118372 -> '118372'
    let str = n.toString();

    // 2. ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋ถ„๋ฆฌ '118372' -> ['1','1','8','3','7','2']
    let arr = str.split('');

    // 3. ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ       ['8','7','3','2','1','1']
    arr.sort((a,b) => b - a);

    // 4. ๋ฐฐ์—ด์„ ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ๊ฒฐํ•ฉ '873211'
    let sortedStr = arr.join('');

    // 5. ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ 873211
    return parseInt(sortedStr,10);

}

//console.log(solution(118372));

 

// 3. ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ       ['8','7','3','2','1','1']
    arr.sort((a,b) => b - a);

์ดˆ๊ธฐ ๋ฐฐ์—ด ['1','1','8','3','7','2']

 

๋ฆฌํ„ด๊ฐ’์ด 0๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐ, a๊ฐ€ b๋ณด๋‹ค ์•ž์— ์˜ค๋„๋ก ์ •๋ ฌ

๋ฆฌํ„ด๊ฐ’์ด 0๋ณด๋‹ค ํด ๊ฒฝ์šฐ, b๊ฐ€ a๋ณด๋‹ค ์•ž์— ์˜ค๋„๋ก ์ •๋ ฌ

๋ฆฌํ„ด๊ฐ’์ด 0์ผ ๊ฒฝ์šฐ, a์™€ b์˜ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค. 

 

 

[ ์ถ”๊ฐ€ ํ•™์Šต ]

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ด๋ถ€์—์„œ ์ •๋ ฌ์„ ๋„์™€์ฃผ๋Š” sort ๋ฉ”์„œ๋“œ : ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ์ •๋ ฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

๊ธฐ๋ณธ ์ •๋ ฌ ์ˆœ์„œ๋Š” ๋ฌธ์ž์—ด์˜ ์œ ๋‹ˆ์ฝ”๋“œ ์ฝ”๋“œ ํฌ์ธํŠธ๋ฅผ ๋”ฐ๋ฅธ๋‹ค.

const arr1 = [5,7,3,2,8];
arr1.sort();
console.log(arr1); // [2,3,5,7,8]

 

์ˆซ์ž ํƒ€์ž… ์ •๋ ฌ ์‹œ ์œ ์˜ํ•  ์  - ์ˆซ์ž๊ฐ€ ๋‘ ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋„˜์–ด๊ฐ€๋ฉด ์˜๋„์น˜ ์•Š์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค.

const arr2 = [1, 43, 28, 30, 7, 9, 12];
arr2.sort();
console.log(arr2); // [1, 12, 28, 30, 43, 7, 9]

 

๋‘ ์ž๋ฆฟ์ˆ˜ ์ด์ƒ์˜ ์ˆซ์ž๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋ฐฐ์—ด์„ ์ •๋ ฌํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ sort() ๋‚ด๋ถ€์—์„œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์ •๋ ฌํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

const arr3 = [1, 43, 28, 30, 7, 9, 12];
arr3.sort((a,b) => a - b); // ์˜ค๋ฆ„์ฐจ์ˆœ์ •๋ ฌ
console.log(arr3); // [1, 7, 9, 12, 28, 30, 43]

 

const arr4 = [1, 43, 28, 30, 7, 9, 12];
arr4.sort((a,b) => b - a); // ๋‚ด๋ฆผ์ฐจ์ˆœ์ •๋ ฌ
console.log(arr4); // [43, 30, 28, 12, 9, 7, 1]

 

< ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด >

function solution(n) {
  const newN = n + ""; // ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ 118372 -> '118372'
  const newArr = newN
    .split("") // ๋ฐฐ์—ด๋กœ ๋ถ„๋ฆฌ ['1','1','8','3','7','2']
    .sort() // ์œ ๋‹ˆ์ฝ”๋“œ ์ •๋ ฌ์€ ์ˆซ์ž ํฌ๊ธฐ ์ˆœ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฌธ์ž์—ด ์ˆœ์„œ๋กœ ์ •๋ ฌ ['1','1','2','3','7','8']
    .reverse() // ๋ฐฐ์—ด์˜ ์š”์†Œ ์ˆœ์„œ ๋’ค์ง‘๊ธฐ ['8','7','3','2','1','1']
    .join(""); // ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๊ฒฐํ•ฉ '873211'

  return +newArr; // ๋ฌธ์ž์—ด์„ ์ˆซ์ž ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ 873211
}

 

1. ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

2. ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋ถ„๋ฆฌ

3. ์˜ค๋ฆ„์ฐจ์ˆœ์ •๋ ฌํ•˜๊ธฐ

4. ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๋ฐ˜์ „ ( ๋‚ด๋ฆผ์ฐจ์ˆœ์ •๋ ฌ )

5. ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๊ฒฐํ•ฉ

6. ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜