๐Ÿธminzzi
Minzzi์•ผ
๐Ÿธminzzi
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (132) N
    • ์˜ค๋ฅ˜ํ•ด๊ฒฐ (14)
    • FE (36)
      • Next.js (17)
      • React (4)
      • React Native (0)
      • TypeScript (1)
      • JavaScript (14)
    • BE (0)
      • Nest.js (0)
    • ๋ฐ๋ธŒ์ฝ”์Šค (7)
    • ์›น ํ”„๋กœ์ ํŠธ (5)
    • CS (28)
      • Algorithm (5)
      • Python (4)
      • C++ (2)
      • Operating System (4)
      • Computer Networking (3)
      • Data Structure (1)
      • Machine Learning (3)
      • Tip (6)
    • Github (4)
    • Flutter (3)
      • ํ”„๋กœ์ ํŠธ (3)
    • Private (3)
      • ํšŒ๊ณ  (7)
      • ๋ฉด์ ‘ (17)
    • ๊ฐœ๋ฐœ๋„์„œ (7) N

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • reflow
  • ์˜ค๋ธ”์™„
  • react
  • ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • ์ด๋ฏธ์ง€ ์ตœ์ ํ™”
  • ์‹คํ–‰์ปจํƒ์ŠคํŠธ
  • ํ˜ธ์ด์ŠคํŒ…
  • ์›์‹œํƒ€์ž…
  • layout shift
  • ๋ชจ๋˜๋ฆฌ์•กํŠธ๋”ฅ๋‹ค์ด๋ธŒ
  • ํž™์˜์—ญ
  • next.js
  • ๋ ‰์‹œ์ปฌ
  • ๋ฉด์ ‘
  • SSR
  • ์‹คํ–‰์ปจํ…์ŠคํŠธ
  • ์ฝœ์Šคํƒ
  • ์ด๋ฒคํŠธ๋ฃจํ”„

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๐Ÿธminzzi

Minzzi์•ผ

[Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ๊ธฐ๋Šฅ๊ฐœ๋ฐœ(array)
CS/Algorithm

[Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ๊ธฐ๋Šฅ๊ฐœ๋ฐœ(array)

2024. 8. 7. 20:32

โœ”๏ธ ๋ฌธ์ œ๋งํฌ

https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=javascript

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

โœ”๏ธ ๋ฌธ์ œ์š”์•ฝ

๋ฐฐํฌ๋˜์–ด์•ผ ํ•˜๋Š” ์ž‘์—…๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ธด ๋ฐฐ์—ด progresses๊ฐ€ ์กด์žฌํ•˜๋ฉฐ ๊ฐ ์ž‘์—…์˜ ๊ฐ’์€ ๋ฐฐํฌ๋œ ์ •๋„๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋งค์ผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์˜ ์†๋„๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด speeds๋„ ์กด์žฌํ•œ๋‹ค. ๊ฐ ์ž‘์—…๋“ค์€ ๋ฐฐํฌ ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € 100% ๋ฐฐํฌ ์ค€๋น„๊ฐ€ ๋๋”๋ผ๋„ ์•ž์„  ์ž‘์—…์ด ๋ฐฐํฌ ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ฐฐํฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋‚ ์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๐Ÿ”ด ์ œํ•œ์‚ฌํ•ญ

  • ์ž‘์—…์˜ ๊ฐœ์ˆ˜(progresses, speeds๋ฐฐ์—ด์˜ ๊ธธ์ด)๋Š” 100๊ฐœ ์ดํ•˜์ด๋‹ค.
  • ์ž‘์—… ์ง„๋„๋Š” 100 ๋ฏธ๋งŒ์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.
  • ์ž‘์—… ์†๋„๋Š” 100 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.
  • ๋ฐฐํฌ๋Š” ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ๋งŒ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•˜๋ฃจ์˜ ๋์— ์ด๋ฃจ์–ด์ง„๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ง„๋„์œจ์ด 95%์ธ ์ž‘์—…์˜ ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ํ•˜๋ฃจ์— 4%๋ผ๋ฉด ๋ฐฐํฌ๋Š” 2์ผ ๋’ค์— ์ด๋ฃจ์–ด์ง„๋‹ค.

๐Ÿšฉ ์ ‘๊ทผ๋ฒ•

 

์ฒ˜์Œ์— ์ ‘๊ทผํ•  ๋•Œ๋Š” ๋‚ ๋งˆ๋‹ค ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ• ์ง€ ์ง์ ‘ ์ ์–ด๋ณด๊ณ  ๋ฐฐํฌ๋‚ ์งœ๋ฅผ ๊ณ„์‚ฐํ•ด๋ดค๋‹ค.

 

๊ณ„์‚ฐ์‹์„ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ {100-๋ฐฐํฌ๋œ์ •๋„}์—์„œ speed๋ฅผ ๋‚˜๋ˆ„๊ณ  ์˜ฌ๋ฆผ์„ ํ•ด์ฃผ๋ฉด ์ด ๊ฑธ๋ฆฌ๋Š” ๋‚ ์ด ๋‚˜์˜ค๊ฒŒ๋œ๋‹ค.

๋”ฐ๋ผ์„œ progresses๋ฅผ ํ•˜๋‚˜์”ฉ ์ˆœํšŒํ•˜์—ฌ ๊ฐ ์ž‘์—…๋งˆ๋‹ค ๋ฐฐํฌ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ๋‚ ์„ ๊ณ„์‚ฐํ•˜๊ณ  deploy๋ผ๋Š” ๋ฐฐ์—ด์— ์ €์žฅํ•˜๋Š” ์ž‘์—…์„ ๋จผ์ € ์ง„ํ–‰ํ•ด์ฃผ๊ณ  deploy ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ๋‹ต์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

์˜ˆ์‹œ๋กœ ๋‚˜์˜ค๋Š” progresses๋ฅผ ๋ณด๋ฉด [93, 30, 55]์ด๋‹ค. ์ด ์ž‘์—…๋“ค์ด ๋ฐฐํฌ๋  ๋‚ ์งœ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ deploy ๋ฐฐ์—ด์„ ๋งŒ๋“ค๋ฉด [7, 3, 9]๋ผ๋Š” ๋ฐฐ์—ด์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.

 

๋‚˜๋Š” ๋‹ต์„ ์œ„ํ•ด answer์ด๋ผ๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๊ณ , ๋จผ์ € answer์— 1์„ pushํ•˜๊ณ , curr_day์— deploy[0] ์ฆ‰, 7์„ ์ €์žฅํ•˜์˜€๋‹ค. ์ดํ›„, deploy๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜์—ฌ curr_day๋ณด๋‹ค ํ˜„์žฌ deploy[i]๊ฐ€ ๋” ํฌ๋ฉด answer์— 1์„ pushํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด deploy์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ์— +1์„ ํ•ด์ฃผ๋Š” ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.

 

(์‚ฌ์ง„์€ ๋‚™์„œ์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํ•™์ ์œผ๋กœ๋Š” ๋งž์ง€ ์•Š์€ ์‹์ž…๋‹ˆ๋‹ค.)

 

๐Ÿ’ก์ฝ”๋“œ

function solution(progresses, speeds) {
    let days = [], answer = [];
    let deploy = 0;
    
    progresses.forEach((progress, idx) => days.push(Math.ceil((100-progress)/speeds[idx])));

    deploy = days[0];
    answer.push(1);
    
    for(let i=1; i<days.length; i++){
        if(deploy < days[i]){
            answer.push(1);
            deploy = days[i];
        }else {
            answer[answer.length-1]++;
        }
    }
    
    return answer;
}

 

์ด๋ ‡๊ฒŒ ํ’€๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ ๋‚ด ํ’€์ด๊ฐ€ ๋‚˜์˜์ง€ ์•Š์€ ํ’€์ด์ž„์— ๊ธฐ๋ปค๋‹ค!

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

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

[Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ์˜์ƒ(hashMap)  (0) 2024.08.04
[Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก(some, indexOf, startsWith)  (0) 2024.08.02
[Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv1 - ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜(hashMap)  (0) 2024.08.01
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ธŒ๋ฃจํŠธ ํฌ์Šค(brute force) - ์™„์ „(์ „์ฒด) ํƒ์ƒ‰  (0) 2024.03.08
    'CS/Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ์˜์ƒ(hashMap)
    • [Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก(some, indexOf, startsWith)
    • [Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv1 - ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜(hashMap)
    • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ธŒ๋ฃจํŠธ ํฌ์Šค(brute force) - ์™„์ „(์ „์ฒด) ํƒ์ƒ‰
    ๐Ÿธminzzi
    ๐Ÿธminzzi

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