# [Algorithm/JS] ๋ฐฑ์ค 11047๋ฒ ๋์ 0
๐ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ (opens new window)
# Question
์ค๊ท๊ฐ ๊ฐ์ง๊ณ ์๋ ๋์ ์ ์ด N์ข ๋ฅ์ด๊ณ , ๊ฐ๊ฐ์ ๋์ ์ ๋งค์ฐ ๋ง์ด ๊ฐ์ง๊ณ ์๋ค.
๋์ ์ ์ ์ ํ ์ฌ์ฉํด์ ๊ทธ ๊ฐ์น์ ํฉ์ K๋ก ๋ง๋ค๋ ค๊ณ ํ๋ค. ์ด๋ ํ์ํ ๋์ ๊ฐ์์ ์ต์๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
# Input
์ฒซ์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ค. (1 โค N โค 10, 1 โค K โค 100,000,000)
๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๋์ ์ ๊ฐ์น Ai๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ฃผ์ด์ง๋ค. (1 โค Aiย โค 1,000,000, A1ย = 1, iย โฅ 2์ธ ๊ฒฝ์ฐ์ย Ai๋ Ai-1์ ๋ฐฐ์)
# Output
์ฒซ์งธ ์ค์ K์์ ๋ง๋๋๋ฐ ํ์ํ ๋์ ๊ฐ์์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
# Example
# Input 1
10 4200
1
5
10
50
100
500
1000
5000
10000
50000
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# Output 1
6
1
# Input 2
10 4790
1
5
10
50
100
500
1000
5000
10000
50000
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# Output 2
12
1
# Solution
const fs = require('fs');
const [N, K, ...coins] = fs.readFileSync('dev/stdin').toString().split(/\s+/).map(Number);
coins.sort((a, b) => b - a); // 1
let cnt = 0;
let price = K;
for (let i = 0; i < N; i++) {
if (price >= coins[i]) {
// 2
cnt += Math.floor(price / coins[i]); // 3
price -= coins[i] * Math.floor(price / coins[i]); // 4
if (price === 0) break; // 5
}
}
console.log(cnt);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- ์ต์์ ๋์ ๊ฐ์๋ฅผ ๊ตฌํด์ผํ๊ธฐ ๋๋ฌธ์ ๊ฐ ๋์ ์ ๊ฐ์น๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
- ๊ฐ์น๊ฐ ๊ฐ๊ฒฉ๋ณด๋ค ๋ฎ์ ๋์ ์ผ ๋๋ง ์ฝ๋๋ฅผ ์คํํ๋ค.
Math.floor(price / coins[i])
๋ ํด๋น ๋์ ์ ์ฌ์ฉํ ์ ์๋ ๊ฐ์์ด๋ค. ๊ฐ์๋งํผ cnt ๋ฅผ ์ฆ๊ฐ์ํจ๋ค.- ๊ฐ๊ฒฉ์ ๋์ ์ ๊ฐ์ * ๋์ ์ ๊ฐ์น ๋งํผ ๋บ๋ค.
- ๊ฐ๊ฒฉ์ด 0์ด ๋๋ค๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋ฒ์ด๋๋ค.