๐Ÿ’ป Programming/Algorithm

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv. 1] ๋ถ€์กฑํ•œ ๊ธˆ์•ก ๊ณ„์‚ฐํ•˜๊ธฐ

Jiwon() 2023. 8. 16. 21:51

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด
์‚ฌ์šฉ ์–ธ์–ด - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ JavaScript JS

1. ๋ถ€์กฑํ•œ ๊ธˆ์•ก ๊ณ„์‚ฐํ•˜๊ธฐ

1) โ“ ๋ฌธ์ œ ์„ค๋ช…

์ƒˆ๋กœ ์ƒ๊ธด ๋†€์ด๊ธฐ๊ตฌ๋Š” ์ธ๊ธฐ๊ฐ€ ๋งค์šฐ ๋งŽ์•„ ์ค„์ด ๋Š์ด์งˆ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋†€์ด๊ธฐ๊ตฌ์˜ ์›๋ž˜ ์ด์šฉ๋ฃŒ๋Š” price์› ์ธ๋ฐ, ๋†€์ด๊ธฐ๊ตฌ๋ฅผ N ๋ฒˆ ์งธ ์ด์šฉํ•œ๋‹ค๋ฉด ์›๋ž˜ ์ด์šฉ๋ฃŒ์˜ N๋ฐฐ๋ฅผ ๋ฐ›๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ฒ˜์Œ ์ด์šฉ๋ฃŒ๊ฐ€ 100์ด์—ˆ๋‹ค๋ฉด 2๋ฒˆ์งธ์—๋Š” 200, 3๋ฒˆ์งธ์—๋Š” 300์œผ๋กœ ์š”๊ธˆ์ด ์ธ์ƒ๋ฉ๋‹ˆ๋‹ค.
๋†€์ด๊ธฐ๊ตฌ๋ฅผ count๋ฒˆ ํƒ€๊ฒŒ ๋˜๋ฉด ํ˜„์žฌ ์ž์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ธˆ์•ก์—์„œ ์–ผ๋งˆ๊ฐ€ ๋ชจ์ž๋ผ๋Š”์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.
๋‹จ, ๊ธˆ์•ก์ด ๋ถ€์กฑํ•˜์ง€ ์•Š์œผ๋ฉด 0์„ return ํ•˜์„ธ์š”.

 

2) ๐Ÿšซ ์ œํ•œ ์‚ฌํ•ญ

  • ๋†€์ด๊ธฐ๊ตฌ์˜ ์ด์šฉ๋ฃŒ price : 1 ≤ price ≤ 2,500, price๋Š” ์ž์—ฐ์ˆ˜
  • ์ฒ˜์Œ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๊ธˆ์•ก money : 1 ≤ money ≤ 1,000,000,000, money๋Š” ์ž์—ฐ์ˆ˜
  • ๋†€์ด๊ธฐ๊ตฌ์˜ ์ด์šฉ ํšŸ์ˆ˜ count : 1 ≤ count ≤ 2,500, count๋Š” ์ž์—ฐ์ˆ˜

 

3) โœ… ์ž…์ถœ๋ ฅ ์˜ˆ

price money count result
3 20 4 10

 

 


2. ์‚ฌ์šฉํ•œ ๋ฉ”์„œ๋“œ: for๋ฌธ, ์‚ผํ•ญ์—ฐ์‚ฐ์ž

for๋ฌธ

  • for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ count๋งŒํผ count*price๋ฅผ ๋”ํ•œ ์ด ๋น„์šฉ์„ ๊ฐ€์ง„ ๋ˆ(money)์™€ ๋น„๊ตํ•œ๋‹ค.

 

์‚ผํ•ญ์—ฐ์‚ฐ์ž

  • ์ด ๋น„์šฉ๊ณผ ๊ฐ€์ง„ ๊ธˆ์•ก(money)๋ฅผ ๋น„๊ตํ•ด์„œ ์–ด๋–ค ๊ฐ’์„ returnํ• ์ง€ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

 

 


3. ๋‹ต์•ˆ

1) ๋‚˜์˜ ํ’€์ด

const solution = (price, money, count) => {
    let sumPrice = 0;
    for (let i=1; i<=count; i++) {
        sumPrice += price*i
    }
    return sumPrice - money > 0 ? sumPrice - money : 0;
}

 

2) ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

function solution(price, money, count) {
    const tmp = price * count * (count + 1) / 2 - money;
    return tmp > 0 ? tmp : 0;
}
  • ๊ฐ€์šฐ์Šค ๋“ฑ์ฐจ์ˆ˜์—ด์˜ ํ•ฉ ์ง„์งœ ์˜ค๋žœ๋งŒ์— ๋ด์„œ ๋ฐ˜๊ฐ€์› ๋‹ค.. ์ดˆ๋”ฉ ๋•Œ 1๋ถ€ํ„ฐ 100๊นŒ์ง€์˜ ํ•ฉ์„ ๋ฐ”๋กœ ์ฐพ์•„๋ƒˆ๋‹ค๋Š” ๊ทธ ๊ณต์‹..^^