# [Algorithm/JS] ๋ฐฑ์ค 1065๋ฒ ํ์
๐ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ (opens new window)
# Question
์ด๋ค ์์ ์ ์ X์ ๊ฐ ์๋ฆฌ๊ฐ ๋ฑ์ฐจ์์ด์ ์ด๋ฃฌ๋ค๋ฉด, ๊ทธ ์๋ฅผ ํ์๋ผ๊ณ ํ๋ค. ๋ฑ์ฐจ์์ด์ ์ฐ์๋ ๋ ๊ฐ์ ์์ ์ฐจ์ด๊ฐ ์ผ์ ํ ์์ด์ ๋งํ๋ค. N์ด ์ฃผ์ด์ก์ ๋, 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ํ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
# Input
์ฒซ์งธ ์ค์ 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์ N์ด ์ฃผ์ด์ง๋ค.
# Output
์ฒซ์งธ ์ค์ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ํ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
# Example
# Input 1
110
# Output 1
99
# Input 2
1
# Output 2
1
์ด ์ธ์ ์ ์ถ๋ ฅ์ ์๋จ์ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ๋งํฌ์์ ํ์ธ
# Solution
# ๋์ ํ์ด
const fs = require('fs');
const input = fs.readFileSync('dev/stdin').toString().trim();
function d(n) {
let count = 0;
for (let i = 1; i <= n; i++) {
let result = true;
let preNum = 0;
let nextNum = 0;
let distance = 0;
let initDistance = 0;
if (i < 100) {
count++;
} else if (i < 1000) {
let number = i;
for (let j = 0; j < n.toString().length; j++) {
preNum = number % 10;
number = Math.floor(number / 10);
nextNum = number % 10;
if (j == 0) initDistance = preNum - nextNum;
if (j < n.toString().length - 1) {
distance = preNum - nextNum;
if (initDistance != distance) result = false;
}
}
if (result) count++;
}
}
console.log(count);
}
d(Number(input));
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
30
31
32
๋์ ํ์ด๋ ์ด์ ๊ฐ๋ค. ๊ฒฐ๊ณผ๋
ํ๋ ธ์ต๋๋ค.
์ ์ฝ๋ ์คํ๊ฒฐ๊ณผ๋ ๋ฌธ์ ์์ ์ ์ํ Output ๊ณผ ๋์ผํ๊ฒ ์ถ๋ ฅํ๋ค. ๋๋ ์ ์ฝ๋๊ฐ ํจ์จ์ ์ธ ์ฝ๋๋ ์๋๋ผ๊ณ ์๊ฐํ๋ค. ํจ์ฌ ๊ฐ๋จํ๊ณ ๊น๋ํ๊ฒ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊ฑฐ๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์..
# ์์ ํ ์ฝ๋
const input = require('fs').readFileSync('dev/stdin').toString().trim();
function solution(n) {
let count = 0;
for (let i = 1; i <= n; ++i) {
if (i < 100) {
count++;
} else if (i < 1000) {
const strNum = String(i);
if (strNum[0] - strNum[1] === strNum[1] - strNum[2]) {
count++;
}
}
}
console.log(count);
}
solution(Number(input));
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ํจ์ฌ ๊ฐ๊ฒฐํ๊ณ ๊ฐ๋ ์ฑ์ด ์ข์์ก๋ค. 1๋ถํฐ 99๊น์ง๋ ๋ชจ๋ ํ์์ ํด๋นํ๊ธฐ ๋๋ฌธ์ ๋ณต์กํ ๋น๊ต๋ฅผ ํ ํ์ ์์ด count๋ฅผ ์ฆ๊ฐ์์ผ์ค๋ค.
๊ฐ ์ํฉ๋ง๋ค์ ๋ณ์๋ฅผ ์์ฑํ ํ์์์ด ํ์ด๋ผ์ดํธ ๋ ๋ผ์ธ์ฒ๋ผ ๊ฐ ์๋ฆฌ์์ ์ฐจ๋ฅผ ๋น๊ตํด ๊ฐ๋ค๋ฉด count ๋ฅผ ์ฆ๊ฐ ์์ผ์ฃผ๋ ๊ฒ์ด๋ค.
์ฒ์ ์ ์ถํ ์ฝ๋์ ๋น๊ตํ๋ ์ด์ ์ฝ๋๊ฐ ํํธ์๊ฒ ๋๊ปด์ง๋ค.