์๋ก ์๊ธด ๋์ด๊ธฐ๊ตฌ๋ ์ธ๊ธฐ๊ฐ ๋งค์ฐ ๋ง์ ์ค์ด ๋์ด์ง ์์ต๋๋ค. ์ด ๋์ด๊ธฐ๊ตฌ์ ์๋ ์ด์ฉ๋ฃ๋ price์ ์ธ๋ฐ, ๋์ด๊ธฐ๊ตฌ๋ฅผ N ๋ฒ ์งธ ์ด์ฉํ๋ค๋ฉด ์๋ ์ด์ฉ๋ฃ์ N๋ฐฐ๋ฅผ ๋ฐ๊ธฐ๋ก ํ์์ต๋๋ค. ์ฆ, ์ฒ์ ์ด์ฉ๋ฃ๊ฐ 100์ด์๋ค๋ฉด 2๋ฒ์งธ์๋ 200, 3๋ฒ์งธ์๋ 300์ผ๋ก ์๊ธ์ด ์ธ์๋ฉ๋๋ค. ๋์ด๊ธฐ๊ตฌ๋ฅผ count๋ฒ ํ๊ฒ ๋๋ฉด ํ์ฌ ์์ ์ด ๊ฐ์ง๊ณ ์๋ ๊ธ์ก์์ ์ผ๋ง๊ฐ ๋ชจ์๋ผ๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์. ๋จ, ๊ธ์ก์ด ๋ถ์กฑํ์ง ์์ผ๋ฉด 0์ return ํ์ธ์.
def solution(price, money, count):
required_amount = sum(map(lambda x: x * price, range(1, count + 1)))
return required_amount - money if required_amount > money else 0
function solution(price, money, count) {
let requiredAmount = 0;
for (let i=1; i<count+1; i++) {
requiredAmount += i * price;
}
return Math.abs(Math.min(money - requiredAmount, 0));
}
func Abs(x int) int {
if x < 0 {
return -x
}
return x
}
func min(a, b int) int {
if a < b {
return a
}
return b
}
func solution(price, money, count int) int {
requiredAmount := 0
for i := 1; i < count + 1; i++ {
requiredAmount += i * price
}
return Abs(min(money - requiredAmount, 0))
}
def solution(price, money, count):
return abs(min(money - sum([price*i for i in range(1,count+1)]),0))
๊ธ์ก์์ ๊ฐ์ง๊ณ ์๋ ๊ธ์ก์ ๋นผ๊ณ ์/์์ ์ฌ๋ถ๋ฅผ ํ๋จํ์ฌ ๋ฆฌํดํด์ฃผ๋ ๋ฐฉ๋ฒ๋ณด๋ค ๋ ๊ฐ์ ์ฐจ์ด๋ฅผ ๊ตฌํ๊ณ abs
๋ก ์ ๋๊ฐ์ ๋ฐํํด์ฃผ๋ฉด ๋๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ ๋ ๊น๋ํด ๋ณด์ด๋ ๊ฒ ๊ฐ๋ค.
function solution(price, money, count) {
const tmp = price * count * (count + 1) / 2 - money;
return tmp > 0 ? tmp : 0;
}
์ด ๋ถ์ ๋ฑ์ฐจ์์ด์ ํฉ ์ ์ด์ฉํด์ ํด๊ฒฐํ์ จ๋ค. ์์ฐ!
count * (count + 1) / 2
๋ถ๋ถ์ ๋ณด๋ฉด n(n+1)/2
๋ฑ์ฐจ์์ด ํฉ ๊ณต์์ด ๋ณด์ธ๋ค. ์ฌ๊ธฐ์ price
๋ฅผ ๊ณฑํด์ ๊ธ์ก์ ํฉ์ ์์ฃผ ์ฝ๊ฒ ๊ตฌํ ์ ์์๋ค.