๐ป 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๊น์ง์ ํฉ์ ๋ฐ๋ก ์ฐพ์๋๋ค๋ ๊ทธ ๊ณต์..^^