๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

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

by hyebin (Helia) 2023. 3. 6.
๋ฐ˜์‘ํ˜•
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1 ๋ชจ์Œ

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

๋ฌธ์ œ ์„ค๋ช…

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

๋†€์ด๊ธฐ๊ตฌ๋ฅผ count๋ฒˆ ํƒ€๊ฒŒ ๋˜๋ฉด ํ˜„์žฌ ์ž์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ธˆ์•ก์—์„œ ์–ผ๋งˆ๊ฐ€ ๋ชจ์ž๋ผ๋Š”์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”. ๋‹จ, ๊ธˆ์•ก์ด ๋ถ€์กฑํ•˜์ง€ ์•Š์œผ๋ฉด 0์„ return ํ•˜์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

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

์ž…์ถœ๋ ฅ ์˜ˆ

price money count result
3 20 4 10

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ์ด์šฉ๊ธˆ์•ก์ด 3์ธ ๋†€์ด๊ธฐ๊ตฌ๋ฅผ 4๋ฒˆ ํƒ€๊ณ  ์‹ถ์€ ๊ณ ๊ฐ์ด ํ˜„์žฌ ๊ฐ€์ง„ ๊ธˆ์•ก์ด 20์ด๋ผ๋ฉด, ์ด ํ•„์š”ํ•œ ๋†€์ด๊ธฐ๊ตฌ์˜ ์ด์šฉ ๊ธˆ์•ก์€ 30 (= 3+6+9+12) ์ด ๋˜์–ด 10๋งŒํผ ๋ถ€์กฑํ•˜๋ฏ€๋กœ 10์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{
    var answer:Int64 = 0
    
    for i in 1...count{
        answer += Int64(i*price)
    }
    
    return (answer > money) ? answer-Int64(money) : 0
}
1๋ถ€ํ„ฐ count๊นŒ์ง€ i๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ, answer ๋ณ€์ˆ˜์— i*price ์—ฐ์‚ฐ์„ ๋”ํ•œ๋‹ค. 
answer ๊ฐ’์ด money๋ณด๋‹ค ํฌ๋‹ค๋ฉด answer์— money๋ฅผ ๋บ€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์•„๋‹ˆ๋ผ๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋‹ค๋ฅธ ํ’€์ด

import Foundation

func solution(_ price:Int, _ money:Int, _ count:Int) -> Int{
    return max(price * ((count + 1) * count / 2) - money , 0)
}
์ด๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๋Š” ์‹์€ (1*price) + (2*price) + ... +(n*price) ์ด๋ฏ€๋กœ price*(1+2+...+n)์ด๋‹ค.
๋“ฑ์ฐจ์ˆ˜์—ด ํ•ฉ ๊ณต์‹์— ๋”ฐ๋ผ ์ด๊ธˆ์•ก์€ price*((count+1)*count/2)๊ฐ€ ๋œ๋‹ค.

์ด๊ธˆ์•ก์—์„œ money๋ฅผ ๋บ€ ๊ฒฐ๊ณผ์™€ 0์ค‘์— ํฐ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋ฐ˜์‘ํ˜•