# [Algorithm/JS] ๋ฐฑ์ค 2581๋ฒ ์์
๐ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ (opens new window)
# Question
์์ฐ์ M๊ณผ N์ด ์ฃผ์ด์ง ๋ M์ด์ N์ดํ์ ์์ฐ์ ์ค ์์์ธ ๊ฒ์ ๋ชจ๋ ๊ณจ๋ผ ์ด๋ค ์์์ ํฉ๊ณผ ์ต์๊ฐ์ ์ฐพ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์๋ฅผ ๋ค์ด M=60, N=100์ธ ๊ฒฝ์ฐ 60์ด์ 100์ดํ์ ์์ฐ์ ์ค ์์๋ 61, 67, 71, 73, 79, 83, 89, 97 ์ด 8๊ฐ๊ฐ ์์ผ๋ฏ๋ก, ์ด๋ค ์์์ ํฉ์ 620์ด๊ณ , ์ต์๊ฐ์ 61์ด ๋๋ค.
# Input
์ ๋ ฅ์ ์ฒซ์งธ ์ค์ M์ด, ๋์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค.
M๊ณผ N์ 10,000์ดํ์ ์์ฐ์์ด๋ฉฐ, M์ N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
# Output
M์ด์ N์ดํ์ ์์ฐ์ ์ค ์์์ธ ๊ฒ์ ๋ชจ๋ ์ฐพ์ ์ฒซ์งธ ์ค์ ๊ทธ ํฉ์, ๋์งธ ์ค์ ๊ทธ ์ค ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
๋จ, M์ด์ N์ดํ์ ์์ฐ์ ์ค ์์๊ฐ ์์ ๊ฒฝ์ฐ๋ ์ฒซ์งธ ์ค์ -1์ ์ถ๋ ฅํ๋ค.
# Example
# Input 1
60
100
2
# Output 1
620
61
2
# Input 2
64
65
2
# Output 2
-1
์ด ์ธ์ ์ ์ถ๋ ฅ์ ์๋จ์ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ๋งํฌ์์ ํ์ธ
# Solution
const [M, N] = require('fs')
.readFileSync('../input.txt')
.toString()
.trim()
.split('\n')
.map(Number);
const decimals = []; // 1
let sum = 0; // 2
for (let i = M; i <= N; i++) {
// 3
let decimal = true; // 4
if (i === 1) continue; // 9
for (let j = 2; j < i; j++) {
// 5
if (i % j === 0) decimal = false;
}
if (decimal) {
// 6
decimals.push(i);
sum += i;
}
}
if (!decimals[0]) console.log(-1);
// 7
else {
// 8
console.log(sum);
console.log(decimals[0]);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
์ ๋ ฅ๊ฐ์ ํฐ์ M ์ 60, ์์ ์๋ N ์ด๋ผ๊ณ ๊ฐ์ ํ๋ค.
M = 60
N = 100
decimals
๋ณ์๋ ์ ๋ ฅ๊ฐ ๋ฒ์ ๋ด ์์๋ง์ ๋ด์ ๋ฐฐ์ด ๋ณ์60 ~ 100 ๋ฒ์ ๋ด ์์๋ 61, 67, 71, 73, 79, 83, 89, 97
sum
๋ณ์๋ ๋ฒ์ ๋ด ์์๋ค์ ํฉํ ๊ฐ์ ํ ๋นํ ๋ณ์๋ฒ์ ๋ด ์ซ์๋ค(60~100)๋งํผ ๋ฐ๋ณต๋ฌธ ์คํ
decimal
๋ณ์๋ ํด๋น ์ซ์๊ฐ ์์์ธ์ง ํ๋ณํ๋ค. ์์๋ผ๋ฉด true, ์๋๋ผ๋ฉด false1์ ๋ฌด์กฐ๊ฑด ์์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ 2๋ถํฐ ํด๋น ์ซ์ - 1 ๋งํผ ๋ฐ๋ณต๋ฌธ ์คํํ์ฌ j ๋ก ๋๋์ด ๋จ์ด์ง๋ ์๋ผ๋ฉด ์์๊ฐ ์๋๊ธฐ ๋๋ฌธ์
decimal
์false
๋ฅผ ํ ๋นํ๋ค.๋ง์ฝ ์์๋ผ๋ฉด
decimals
๋ฐฐ์ด์ push ํ๊ณ , sum ์ ๋ํด์ค๋ค.decimals
๋ฐฐ์ด์ด ๋น์ด์๋ค๋ฉด -1 ์ ์ถ๋ ฅํ๋ค. ๋น์ด์๋ค๋ ๊ฒ์ ์์๊ฐ ์๋ค๋ ๋ป์ด๋ค.๋ฐฐ์ด์ด ๋น์ด์์ง ์๋ค๋ฉด, ์์์ ์ด ํฉ๊ณผ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
์ฌ๊ธฐ์ ๋ง์ง๋ง์ผ๋ก!! ์์์ฒ๋ฆฌ๋ฅผ ํด์ค์ผํ๋ค. ์์ธ์ฒ๋ฆฌ๋ฅผ ์ํด์ ๊ณ์ ์ค๋ต์ผ๋ก ์ฒ๋ฆฌ๋์๋ค. 1์ ์์๊ฐ ์๋๋ฏ๋ก ๋ฒ์๋ด์ 1์ด ์์ ๊ฒฝ์ฐ ์๋ฌด ๊ฒ๋ ํ์ง ์๊ณ ๋ค์ ์ซ์๋ฅผ ๊ฒ์ฌํ๋ค.