๋”ฐํŒŒ๐Ÿ•
Hwaiian Pizza IT Pub
๋”ฐํŒŒ๐Ÿ•
  • ALL (62)
    • Front-End (13)
      • HTML & CSS (2)
      • JavaScript (7)
      • React (2)
      • TypeScript (0)
      • Jquery (0)
      • Git (1)
      • Editor (0)
    • Algorithms (44)
      • Baekjoon (28)
      • Programmers (13)
      • Algorithms (3)
    • Computer Science (0)
      • Math (0)
    • Conference (1)
    • Life (3)
      • Book (0)
hELLO ยท Designed By ์ •์ƒ์šฐ.
๋”ฐํŒŒ๐Ÿ•

Hwaiian Pizza IT Pub

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ํฐ์ผ“๋ชฌ
Algorithms/Programmers

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ํฐ์ผ“๋ชฌ

2022. 7. 14. 17:29
๋ฐ˜์‘ํ˜•

 

Question

 

์ œํ•œ์‚ฌํ•ญ

  • nums๋Š” ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด 1์ฐจ์› ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • nums์˜ ๊ธธ์ด(N)๋Š” 1 ์ด์ƒ 10,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋ฉฐ, ํ•ญ์ƒ ์ง์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
  • ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๋Š” 1 ์ด์ƒ 200,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ๊ฐ€์žฅ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ์—๋„, ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜ ๊ฐœ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’ ํ•˜๋‚˜๋งŒ return ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

 


 

 

My Code

 

function solution(nums) {
    let n = nums.length/2;
    let set = new Set(nums);
    return set.size > n ? n : set.size;
}

 

 

์ €๋ ‡๊ฒŒ ๊ธด ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ์ˆœ๊ฐ„ ๋ฉˆ์นซํ•˜๊ฒŒ ๋œ๋‹ค.

์•„์ง ๋ ˆ๋ฒจ1์ด๋ฉด์„œ ์™œ ์ด๋ ‡๊ฒŒ ๊ธฐ์‹œ์ฃ ?

 

 

์š”์•ฝํ•ด์„œ ์ค‘์š”ํ•œ ๋‚ด์šฉ์„ ์ถ”๋ ค๋ณด์ž๋ฉด......

 

  1. ์ตœ๋Œ€๋กœ ๊ฐ€์ ธ๊ฐˆ์ˆ˜ ์žˆ๋Š” ํฐ์ผ“๋ชฌ์€ N/2 ๋งˆ๋ฆฌ๋‹ค.
  2. ์ค‘๋ณต๋œ ํฐ์ผ“๋ชฌ๋“ค์ด ์žˆ๋‹ค โžก ๊ฐ’์ด ์ค‘๋ณต๋˜๋Š” ๋ฐฐ์—ด์ด ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋“ค์–ด์˜จ๋‹ค.
  3. ์ตœ๋Œ€ํ•œ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค.

 

 

 

HOW? (ํ’€์ด๋ฐฉ๋ฒ•)

 

1. ๋ณ€์ˆ˜ n์— ์ตœ๋Œ€๋กœ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํฐ์ผ“๋ชฌ์˜ ๋งˆ๋ฆฌ์ˆ˜์ธ nums.length/2๋ฅผ ํ• ๋‹นํ•œ๋‹ค.

 

2. ์ž๋ฃŒํ˜• set์„ ์ด์šฉํ•ด์„œ ์ž…๋ ฅ๋ฐ›๋Š” nums์˜ ์ค‘๋ณต๋œ ๊ฐ’์„ ์ œ๊ฑฐํ•œ๋‹ค.

์ข…๋ฅ˜๋“ค๋กœ๋งŒ ์ถ”๋ฆผ

 

3. set.size๊ฐ€ n๋ณด๋‹ค ํฌ๋‹ค๋ฉด n์„ return ํ•˜๊ณ  ์ž‘๋‹ค๋ฉด set.size๋ฅผ return ํ•œ๋‹ค.

๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋Š” n๋งˆ๋ฆฌ์ˆ˜๋กœ ํ•œ์ •๋˜์–ด์žˆ์œผ๋‹ˆ set.size๊ฐ€ n๋ณด๋‹ค ํฌ๋‹ค๋ฉด 

๋” ๋งŽ์€ ํฐ์ผ“๋ชฌ์„ ๊ฐ€์ ธ๊ฐ€๊ฒŒ ๋˜๋ฏ€๋กœ ํ‹€๋ฆฐ๋‹ค. ๋”ฐ๋ผ์„œ n์„ return ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

 

 

 

์ฒ˜์Œ์—๋Š” map์„ ์‚ฌ์šฉํ•ด์„œ ์ข…๋ฅ˜๋ฅผ ์„ธ์•ผ ํ•˜๋Š” ๋ณต์žกํ•œ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ–ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ํ•ด์„œ๋“  for๋ฌธ์ด๋‚˜ ์กฐ๊ฑด๋ฌธ์„ ๋‚จ๋ฐœํ•˜์ง€ ์•Š๊ณ  method๋ฅผ ์ด์šฉํ•ด์„œ ํ’€๊ณ  ์‹ถ์—ˆ๋‹ค.

์†์œผ๋กœ ๋„์ ์ด๋‹ค ๋ณด๋‹ˆ set ์ž๋ฃŒํ˜•์ด ์ƒ๊ฐ๋‚ฌ๊ณ  ์ค‘๋ณต์„ ์—†์•ค๋‹ค์Œ

set.size๋ฅผ ์ด์šฉํ•ด์„œ ๋‹ต์„ return ํ•˜๋ฉด ๋˜๊ฒ ๊ตฌ๋‚˜ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 

์–ด์ฉŒ๋ฉด ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋จผ์ € ์ƒ๊ฐํ•˜๊ณ  ์“ด ๋‹ต์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ

๋‚˜์—๊ฒ ์ •๋ง ์œ ๋ ˆ์นด์˜€๋‹ค...!

 

 

์˜ค๋žœ๋งŒ์— ๋‹ค์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€๋‹ค ๋ณด๋‹ˆ

์ž๊พธ ๊ตฌ๊ธ€๋ง์„ ํ•ด์„œ ๊ธˆ๋ฐฉ ๋‹ต์„ ๋„์ถœํ•ด๋‚ด๊ณค ํ–ˆ๋‹ค.

๊ทธ๊ฑด ๋‚ด๊ฐ€ ํ‘ผ ๊ฒŒ ์•„๋‹ˆ๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ํ‘ผ ๊ฑฐ๋ผ๋Š” ์ƒ๊ฐ์ด ์€์—ฐ์ค‘์— ๋‚จ์•„์žˆ์—ˆ๋‚˜ ๋ณด๋‹ค.

๊ทธ๋ž˜๋„ ์–ด๋А ์ •๋„ ์ค‘๊ฐ„์ด๋‚˜ 3๋ถ„์˜ 2๊นŒ์ง€๋Š” ์ƒ๊ฐํ•ด๋ƒˆ์œผ๋‹ˆ๊นŒ ์ด๋ผ๊ณ  ๋ณ€๋ช… ์•„๋‹Œ ๋ณ€๋ช…์„ ํ–ˆ์ง€๋งŒ

์‚ฌ์‹ค ๋งž๋Š” ๋ง์ด๊ธฐ๋„ ํ•˜๋‹ค ๊ทธ๊ฑด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ƒ๊ฐํ•œ ๊ฒŒ ๋งž๋‹ค ๐Ÿคฃ

 

๊ทธ๋ž˜์„œ ๋”์šฑ ๋ฟŒ๋“ฏํ–ˆ๋‹ค...!!!!!!!

 

์•ž์œผ๋กœ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€ ๋•Œ๋Š” ์‹œ๊ฐ„ ํ…€์„ ๋‘๊ณ  ๋ฐฐ์› ๋˜ ๊ฒƒ๋“ค

์ฐจ๋ถ„ํ•˜๊ฒŒ ์ƒ๊ฐํ•ด๋ณด๋ฉด

ํ‘ธ๋Š” ๋ฐฉ์‹์„ ๋„์ถœํ•ด ๋‚ผ ๊ฒƒ์ด๋‹ค.

 

 

 

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Algorithms > Programmers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : x๋งŒํผ ๊ฐ„๊ฒฉ์ด ์žˆ๋Š” n๊ฐœ์˜ ์ˆซ์ž  (0) 2022.07.13
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : 2016๋…„  (0) 2022.06.04
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : K๋ฒˆ์งธ ์ˆ˜  (0) 2022.05.29
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ œ์ผ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐํ•˜๊ธฐ  (0) 2022.05.27
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ  (0) 2022.05.22
    'Algorithms/Programmers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : x๋งŒํผ ๊ฐ„๊ฒฉ์ด ์žˆ๋Š” n๊ฐœ์˜ ์ˆซ์ž
    • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : 2016๋…„
    • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : K๋ฒˆ์งธ ์ˆ˜
    • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์ œ์ผ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐํ•˜๊ธฐ
    ๋”ฐํŒŒ๐Ÿ•
    ๋”ฐํŒŒ๐Ÿ•
    ์ €์ชฝ ์†๋‹˜์ด ๋ณด๋‚ด์‹  ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค. ๋””๋ฒ„๊น… ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?๐Ÿน

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”