# [Algorithm/JS] ๋ฐฑ์ค 5622๋ฒ ๋ค์ด์ผ
๐ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ (opens new window)
# Question
์๊ทผ์ด์ ํ ๋จธ๋๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค๋๋ ๋ค์ด์ผ ์ ํ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ค.
์ ํ๋ฅผ ๊ฑธ๊ณ ์ถ์ ๋ฒํธ๊ฐ ์๋ค๋ฉด, ์ซ์๋ฅผ ํ๋๋ฅผ ๋๋ฅธ ๋ค์์ ๊ธ์ ํ์ด ์๋ ๊ณณ ๊น์ง ์๊ณ๋ฐฉํฅ์ผ๋ก ๋๋ ค์ผ ํ๋ค. ์ซ์๋ฅผ ํ๋ ๋๋ฅด๋ฉด ๋ค์ด์ผ์ด ์ฒ์ ์์น๋ก ๋์๊ฐ๊ณ , ๋ค์ ์ซ์๋ฅผ ๋๋ฅด๋ ค๋ฉด ๋ค์ด์ผ์ ์ฒ์ ์์น์์ ๋ค์ ๋๋ ค์ผ ํ๋ค.
์ซ์ 1์ ๊ฑธ๋ ค๋ฉด ์ด 2์ด๊ฐ ํ์ํ๋ค. 1๋ณด๋ค ํฐ ์๋ฅผ ๊ฑฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ด๋ณด๋ค ๋ ๊ฑธ๋ฆฌ๋ฉฐ, ํ ์นธ ์์ ์๋ ์ซ์๋ฅผ ๊ฑธ๊ธฐ ์ํด์ 1์ด์ฉ ๋ ๊ฑธ๋ฆฐ๋ค.
์๊ทผ์ด์ ํ ๋จธ๋๋ ์ ํ ๋ฒํธ๋ฅผ ๊ฐ ์ซ์์ ํด๋นํ๋ ๋ฌธ์๋ก ์ธ์ด๋ค. ์ฆ, ์ด๋ค ๋จ์ด๋ฅผ ๊ฑธ ๋, ๊ฐ ์ํ๋ฒณ์ ํด๋นํ๋ ์ซ์๋ฅผ ๊ฑธ๋ฉด ๋๋ค. ์๋ฅผ ๋ค์ด, UNUCIC๋ 868242์ ๊ฐ๋ค.
ํ ๋จธ๋๊ฐ ์ธ์ด ๋จ์ด๊ฐ ์ฃผ์ด์ก์ ๋, ์ด ์ ํ๋ฅผ ๊ฑธ๊ธฐ ์ํด์ ํ์ํ ์ต์ ์๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
# Input
์ฒซ์งธ ์ค์ ์ํ๋ฒณ ๋๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ค. ๋จ์ด์ ๊ธธ์ด๋ 2๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 15๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
# Output
์ฒซ์งธ ์ค์ ๋ค์ด์ผ์ ๊ฑธ๊ธฐ ์ํด์ ํ์ํ ์ต์ ์๊ฐ์ ์ถ๋ ฅํ๋ค.
# Example
# Input 1
WA
# Output 1
13
# Input 2
UNUCIC
# Output 2
36
# Solution
const input = require('fs').readFileSync('../input.txt').toString().trim().split('');
const dials = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ'];
let result = 0;
input.map((a) => {
dials.map((dial, i) => {
if (dial.includes(a)) result += 3 + i;
});
});
console.log(result);
2
3
4
5
6
7
8
9
10