๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Javascript] ๊ธฐ๋Šฅ๊ฐœ๋ฐœ (42586)

๋ฌธ์ œ๋งํฌ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ธฐ๋Šฅ๊ฐœ๋ฐœ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํŒ€์—์„œ๋Š” ๊ธฐ๋Šฅ ๊ฐœ์„  ์ž‘์—…์„ ์ˆ˜ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ์€ ์ง„๋„๊ฐ€ 100%์ผ ๋•Œ ์„œ๋น„์Šค์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜, ๊ฐ ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ์†๋„๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋’ค์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์•ž์— ์žˆ๋Š”

programmers.co.kr

์ ‘๊ทผ ๋ฐฉ๋ฒ•

์ž‘์—… ์ง„๋„(progresses)์™€ ์ž‘์—… ์†๋„(speeds)๋ฅผ ํ†ตํ•ด ์ž‘์—…์ด ์™„๋ฃŒ๋œ ๋‚ ์งœ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด endProgress๋ฅผ ๋งŒ๋“ ๋‹ค.

๊ทธ๋ฆฌ๊ณ  endProgress์˜ ๋ฐฐ์—ด์—์„œ ์ด์ „ ์š”์†Œ์™€ ๋‹ค์Œ ์š”์†Œ๋“ค์„ ๋น„๊ตํ•˜๋ฉฐ answer์„ ์ฑ„์šด๋‹ค.

 

function solution(progresses, speeds) {
  var answer = [0];
  const endProgress = [];

  progresses.forEach((e, idx) => {
      for(let i = 1; i <= 100; i++){
          e += speeds[idx];
          if(e >= 100){
              endProgress.push(i);
              return;
          }
      }
  })
  
  let max = endProgress[0];
  
  for(let i = 0, j = 0; i < endProgress.length; i++){
      if(endProgress[i] <= max){
          answer[j] += 1;
      }else{
          max = endProgress[i];
          answer[++j] = 1;
      }
  }

  return answer;
}