YunCow 2022. 9. 3. 23:17

๋ฌธ์ œ ๋‚ด์šฉ

ํ’€์ด๐Ÿ™Ž๐Ÿป‍โ™‚๏ธ

function solution(d, budget) {
  let result = 0;
  d.sort((a, b) => a - b).reduce((acc, cur) => {
    if (budget >= acc + cur) {
      result++;
    }
    return acc + cur;
  }, 0);
  return result;
}

function solution(d, budget) {
  let result = 0;
  let sumEach = 0;
  d.sort((a, b) => a - b);
  for (i = 0; i < d.length; i++) {
    sumEach += d[i];
    if (budget >= sumEach) {
      result++;
    }
  }
  return result;
}
/*

(ํ’€์ด)
1. ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์„ ํ•ด์ฃผ๊ณ  reduce๋ฉ”์†Œ๋“œ๋ฅผ ๋ˆ„์ ๊ฐ’์— ํ˜„์žฌ๊ฐ’์„ ๋”ํ•˜๋Š” ๋„์ค‘ if๋ฌธ์œผ๋กœ budget ๋ณด๋‹ค
๋ˆ„์ ๊ฐ’ + ํ˜„์žฌ๊ฐ’ ์ด ์ž‘์„๊ฒฝ์šฐ result ๋ฅผ 1๊ฐœ์”ฉ ์นด์šดํŠธ ํ•ด์คฌ๋‹ค.

2. result ์™€ ๊ฐ ํ•ฉ์‚ฐ๊ฐ’์˜ ๋ณ€์ˆ˜ sumEach๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ  (๋ณ€์ˆ˜์ด๋ฆ„์ด ์ ์ ˆ์น˜ ์•Š์€๊ฑฐ ๊ฐ™์€๋ฐ.. ๋– ์˜ค๋ฅด๋Š” ์ด๋ฆ„์ด ์—†์Šต๋‹ˆ๋‹คใ… ใ… )
๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ํ›„ for๋ฌธ์œผ๋กœ ์ž‘์€๊ฐ’๋ถ€ํ„ฐ sumEach์— ๊ฐ’์„ ๋Œ€์ž…ํ•ด์ฃผ๊ณ  budget๋ณด๋‹ค ์ ์„ ๊ฒฝ์šฐ์—๋งŒ result++; ํ•ด์ค€๋‹ค.

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ญ˜ ํ•˜๊ณ ์ž ํ•˜๋Š”์ง€๋Š” ์•Œ๊ฒ ๋Š”๋ฐ.. ์ฝ”๋“œ๋กœ ๋Œ€์ž…ํ•˜๋ คํ•˜๋ฉด ์ดํ•ด๊ฐ€์•ˆ๊ฐ„๋‹ค.. @_@

*/
  • ๋ฌธ์ œ๊ฐ€ ์–ด๋ ค์šธ์ˆ˜๋ก ๊ฐ€๋…์„ฑ์ด๋‚˜ ํšจ์œจ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š”๊ฒŒ ํž˜๋“ค์–ด์ง„๋‹ค๐Ÿค”

ํŒ€๋ฆฌ๋”๋‹˜ ํ”ผ๋“œ๋ฐฑ

reduce

function solution(d, budget) {
  let result = 0;
  
  d.sort((a, b) => a - b).reduce((acc, cur) => {
    acc += cur
    if (acc <=  budget) result++;
    return acc;
  }, 0);
  
  return result;
}
  • reduce๋ฅผ ์ด์šฉํ•œ ์ฒซ๋ฒˆ์งธ ํ’€์ด์ธ๋ฐ ์ •ํ™•ํ•˜๊ฒŒ reduce๊ฐ€ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ์•Œ์ง€ ๋ชปํ•˜๋Š” ๋ฐ”๋žŒ์— ์กฐ๊ธˆ ํ—ค๋งธ์—ˆ๋‹ค.
  • += ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด์„œ ๋” ๊น”๋”ํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

for

function solution(d, budget) {
  let result = 0;
  let sum = 0;
  
  d.sort((a, b) => a - b);
  
  for (let i = 0; i < d.length; i++) {
    sum += d[i];
    
    if (budget < sum) return result;
    result++;
  }
  
  return result;
}
  • ๋ฌธ๋‹จ๋งˆ๋‹ค ์ค„๋ฐ”๊ฟˆ ํ•ด์ฃผ๋Š”๊ฒŒ ํ›จ์”ฌ ๊น”๋”ํ•˜๋‹ค. (๋ณ€์ˆ˜์„ ์–ธ๋ฌธ๋‹จ, for๋ฌธ, return๋ฌธ๋‹จ ๋“ฑ)
  • for๋ฌธ ์‚ฌ์šฉ ์‹œ i์— let ์ถ”๊ฐ€ํ•ด์„œ ์Šค์ฝ”ํ”„ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š”๊ฑฐ ์žŠ์ง€๋ง๊ธฐ.
  • if๋ฌธ์œผ๋กœ sum์ด ๋” ๊ฑฐ์น˜๋ฉด return์„ ์ด์šฉํ•ด ๋ฐ”๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•ด์„œ ํšจ์œจ๊นŒ์ง€ ์ฑ™๊ฒจ์ฃผ๊ธฐ.