๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/๐Ÿต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(Java)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_๋ถ€์กฑํ•œ ๊ธˆ์•ก ๊ณ„์‚ฐํ•˜๊ธฐ

by carrot0911 2024. 11. 18.

๋ฌธ์ œ ์„ค๋ช…

์ƒˆ๋กœ ์ƒ๊ธด ๋†€์ด๊ธฐ๊ตฌ๋Š” ์ธ๊ธฐ๊ฐ€ ๋งค์šฐ ๋งŽ์•„ ์ค„์ด ๋Š์ด์งˆ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋†€์ด๊ธฐ๊ตฌ์˜ ์›๋ž˜ ์ด์šฉ๋ฃŒ๋Š” 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 java.util.*;

class Solution {
    public long solution(int price, int money, int count) {
        long answer = -1;
        
        long sum = 0;
        
        for (int i = 1; i <= count; i++) {
            sum = sum + (price * i);
        }
        
        if (money < sum) {
            answer = sum - money;
        } else {
            answer = 0;
        }

        return answer;
    }
}

์ฒ˜์Œ์—๋Š” money์—์„œ sum์„ ๋นผ๊ณ  ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ ํ…Œ์ŠคํŠธ์—์„œ ์ž๊พธ ๋ช‡ ๊ฐœ๊ฐ€ ์‹คํŒจํ–ˆ๋‹ค๊ณ  ๋‚˜์™€์„œ ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋„์ „ํ–ˆ๋‹ค.

์ฝ”๋“œ ์„ค๋ช…

  • long sum = 0 : ์ „์ฒด ํ•ฉ๊ณ„๋ฅผ ์ €์žฅํ•  long ํƒ€์ž… ๋ณ€์ˆ˜ sum๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • for (int i = 1; i <= count; i ++) { } : ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•œ๋‹ค.
    • sum = sum + (price * i) : ๋ณ€์ˆ˜ sum์— price * i๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ๋”ํ•ด์ค€๋‹ค.
  • if (money < sum) { } : ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜ money๋ณด๋‹ค sum์ด ๋” ํด ๊ฒฝ์šฐ ์ง„ํ–‰ํ•œ๋‹ค.
    • anwer = sum - money : ๋ณ€์ˆ˜ answer์—์„œ sum - money ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.
  • else { answer = 0 } : money๊ฐ€ ๋” ํฌ๋‹ค๋ฉด ๋ณ€์ˆ˜ answer์— 0์„ ์ €์žฅํ•œ๋‹ค.