๐Ÿ”€[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํŠน์ดํ•œ ์ •๋ ฌ

Chobbyยท2022๋…„ 10์›” 19์ผ
5

Programmers

๋ชฉ๋ก ๋ณด๊ธฐ
129/345

๐Ÿงก๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ n์„ ๊ธฐ์ค€์œผ๋กœ n๊ณผ ๊ฐ€๊นŒ์šด ์ˆ˜๋ถ€ํ„ฐ ์ •๋ ฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ n์œผ๋กœ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋” ํฐ ์ˆ˜๋ฅผ ์•ž์— ์˜ค๋„๋ก ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numlist์™€ ์ •์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ numlist์˜ ์›์†Œ๋ฅผ n์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ€๊นŒ์šด ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


๐Ÿ’›์ œํ•œ์‚ฌํ•ญ

  • 1 โ‰ค n โ‰ค 10,000
  • 1 โ‰ค numlist์˜ ์›์†Œ โ‰ค 10,000
  • 1 โ‰ค numlist์˜ ๊ธธ์ด โ‰ค 100
  • numlist๋Š” ์ค‘๋ณต๋œ ์›์†Œ๋ฅผ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐Ÿ’š์ž…์ถœ๋ ฅ ์˜ˆ

numlistnresult
[1, 2, 3, 4, 5, 6]4[4, 5, 3, 6, 2, 1]
[10000,20,36,47,40,6,10,7000]30[36, 40, 20, 47, 10, 6, 7000, 10000]

๐Ÿ’™์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • 4์—์„œ ๊ฐ€๊นŒ์šด ์ˆœ์œผ๋กœ [4, 5, 3, 6, 2, 1]์„ returnํ•ฉ๋‹ˆ๋‹ค.
  • 3๊ณผ 5๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ๋” ํฐ 5๊ฐ€ ์•ž์— ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • 2์™€ 6์€ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ๋” ํฐ 6์ด ์•ž์— ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • 30์—์„œ ๊ฐ€๊นŒ์šด ์ˆœ์œผ๋กœ [36, 40, 20, 47, 10, 6, 7000, 10000]์„ returnํ•ฉ๋‹ˆ๋‹ค.
  • 20๊ณผ 40์€ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ๋” ํฐ 40์ด ์•ž์— ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’œ๋‚˜์˜ ํ’€์ด

function solution(numlist, n) {
    return numlist.sort((a,b) => {
        const [aGab, bGab] = [Math.abs(a-n), Math.abs(b-n)]
        // ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋” ํฐ ์ˆ˜๋ฅผ ์šฐ์„  ๋ฐฐ์น˜
        if(aGab === bGab) return b-a
        // ๋‹ค๋ฅด๋‹ค๋ฉด ๊ฑฐ๋ฆฌ๋ณ„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
        return aGab-bGab
    })
}
profile
๋‚ด ์ง€์‹์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๋‹ดํ•จ

0๊ฐœ์˜ ๋Œ“๊ธ€