๋ถ์กฑํ ๊ธ์ก ๊ณ์ฐํ๊ธฐ
์๋ก ์๊ธด ๋์ด๊ธฐ๊ตฌ๋ ์ธ๊ธฐ๊ฐ ๋งค์ฐ ๋ง์ ์ค์ด ๋์ด์ง ์์ต๋๋ค. ์ด ๋์ด๊ธฐ๊ตฌ์ ์๋ ์ด์ฉ๋ฃ๋ 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 ํฉ๋๋ค.
๋ฌธ์ ํ์ด
sum ๋ณ์๋ฅผ ๋ง๋ค๊ณ for๋ฌธ์ ์ด์ฉํ์ฌ ๋์ด๊ธฐ๊ตฌ ์๊ฐ์์ ํ์๋ฅผ ๊ณฑํ ๊ฐ๊ฒฉ์ ๊ณ์ํด์ ์ ์ฅ์ํค๋ฉด sum์๋ 3+6+9+12๋ก 30์ด ์ ์ฅ๋๋ค. answer์๋ sum(30)์์ money(20)๋ฅผ ๋บ ๊ฐ 10์ด ์ ์ฅ๋๋ค. ์ ๋ต์ 10.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
long long solution(int price, int money, int count) {
long long sum = 0;
for(int i=1; i<count+1; i++){
sum += price * i;
}
long long answer = sum - money;
if (answer <= 0)
answer = 0;
return answer;
}
๋ค๋ฅธ ํ์ด ๋ฐฉ์
์ถ์ฒ : ํ๋ก๊ทธ๋๋จธ์ค ์ค์ฟจ
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
long long solution(long price, long money, long count) {
long long answer = (count + 1) * count / 2 * price; // required
//long long answer = (5 x 4) รท 2 x 3 == 30
if (money - answer >= 0)
return 0;
return answer - money;
//30-20 == 10
}
๋๊ธ