# [Algorithm/JS] ๋ฐฑ์ค 3052๋ฒ ๋๋จธ์ง
๐ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ (opens new window)
# Question
๋ ์์ฐ์ A์ B๊ฐ ์์ ๋, A%B๋ A๋ฅผ B๋ก ๋๋ ๋๋จธ์ง ์ด๋ค. ์๋ฅผ ๋ค์ด, 7, 14, 27, 38์ 3์ผ๋ก ๋๋ ๋๋จธ์ง๋ 1, 2, 0, 2์ด๋ค.
์ 10๊ฐ๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค, ์ด๋ฅผ 42๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ค. ๊ทธ ๋ค์ ์๋ก ๋ค๋ฅธ ๊ฐ์ด ๋ช ๊ฐ ์๋์ง ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
# Input
์ฒซ์งธ ์ค๋ถํฐ ์ด๋ฒ์งธ ์ค ๊น์ง ์ซ์๊ฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ด ์ซ์๋ 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๊ณ , ์์ด ์๋ ์ ์์ด๋ค.
# Output
์ฒซ์งธ ์ค์, 42๋ก ๋๋์์ ๋, ์๋ก ๋ค๋ฅธ ๋๋จธ์ง๊ฐ ๋ช ๊ฐ ์๋์ง ์ถ๋ ฅํ๋ค.
# Example Input 1
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# Example Output 1
10
# Example Input 2
42
84
252
420
840
126
42
84
420
126
2
3
4
5
6
7
8
9
10
# Example Output 2
1
# Example Input 2
39
40
41
42
43
44
82
83
84
85
2
3
4
5
6
7
8
9
10
# Example Output 2
6
# Solution
๋ด๊ฐ ์์ฑํ ํ์ด๋ ์ด์ ๊ฐ๋ค.
const fs = require('fs');
const input = fs.readFileSync('dev/stdin').toString().split('\n').map(Number);
const arr = [];
input.map((n) => arr.push(n % 42));
console.log([...new Set(arr)].length);
2
3
4
5
6
๊ฒฐ๊ณผ๋ ํ๋ ธ๋ค๊ณ ํ๋ค. ์๋ฌด๋ฆฌ ๋ด๋ ํ๋ฆฐ ์ ์ด ์๊ณ , ์์ ์ ๋์ผํ Output์ด ๋์ค๋๋ฐ ์ด๋์ ํ๋ฆฐ ๊ฒ์ผ๊น? ์ง๋ฌธ ๊ฒ์ํ์ ๋ค์ ธ๋ณด์๊ณ ,
3052๋ฒ nodejs ๋ฐ๋ ๋ฅผ ๋ชป์ฐพ๊ฒ ์ต๋๋ค. (opens new window)
์ด ๊ธ์ ๋ณด๊ณ ํด๋ต์ ์ฐพ์๋ค. Input ์ ๋ฐ์์ฌ ๋ split()
์ด์ ์ trim()
์ ํด์ค์ผ ํ๋ค!
์
๋ ฅ๊ฐ์ ๊ณต๋ฐฑ์ด ํฌํจ๋์ด ์๋ค๊ณ ํ๋ค.
๊ณต๋ฐฑ์ด ์ด๋์ ํฌํจ๋์ด์๋์ง ํ์ธํด๋ณด์.
const input = fs.readFileSync('dev/stdin').toString().split('\n').map(Number);
console.log(`๊ณต๋ฐฑ${input}์ด๋์`); // ๊ณต๋ฐฑ39,40,41,42,43,44,82,83,84,85์ด๋์
2
๊ณต๋ฐฑ.. ์ด๋์ ์์๊น? ๋๋ ๋ชจ๋ฅด๊ฒ ๋ค. ๐ค
# ์ ๋ต ํ์ด
๋ค์ ์ ์ถํ ํ์ด๋ ์ด์ ๊ฐ๋ค.
const fs = require('fs');
const input = fs.readFileSync('dev/stdin').toString().trim().split('\n').map(Number);
const arr = [];
input.map((n) => arr.push(n % 42));
console.log([...new Set(arr)].length);
2
3
4
5
6
Set ๊ฐ์ฒด๋ฅผ ํตํด arr ์ ์ค๋ณต๊ฐ์ ์ ๊ฑฐํ๋ค. [...new Set(arr)]
๋์ Array.from(new Set(arr))
๋ก ์ฌ์ฉํ ์ ์๋ค.