์ด๊ฒ ์ค๋ฒ 3 ๋์ด๋๋ผ๊ณ ???
์ฌ์ง์ด ์๋ ์ถ์ฒ๋ฅผ ๋ณด๋ ์ด๋ฑ๋ถ ์ ๋ณด ์ฌ๋ฆผํผ์๋ ๋ฌธ์ !!
ํ๋์ ํ๋ก๊ทธ๋๋จธ์ค 1๋ ๋ฒจ ์ ๋ ๋์ด๋์ ๋ฌธ์ ๋ง ํ๋ฉด์ ์์ ๊ฐ์ด ๋ถ์๋๋ฐ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ์ถฉ๊ฒฉ๋ฐ์๋ค.
1์๊ฐ 30๋ถ์ ๋ ๋์ ํด๋ณธ ํ ์คํจํ๊ณ ๊ฒฐ๊ตญ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๊ณ ํ์๋ค,,ํํ
๋์ ์ ๊ทผ ๋ฐฉ๋ฒ
๋ต๋ณ์ด ๋ ์ ์๋ (strike, ball)์ ๊ฒฝ์ฐ์ ์ ๋ง๋ค ์กฐ๊ฑด๋ฌธ์ ๋ง๋ค์ด์ ์ฒ๋ฆฌํ๋ค.
0 0
0 1
0 2
1 0
1 1
1 2
2 0- strike์ ball ์ด ๋ชจ๋ 0์ธ ๊ฒฝ์ฐ ์ด ๋ ๋ฌผ์ด๋ณธ ์์ ํฌํจ๋ ์ซ์๋ ์ ๋ ๋ต์ ์ฌ ์ ์์ผ๋ฏ๋ก ๊ธฐ๋กํด๋๋ค.
- strike = 0, ball = 1์ธ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์๋ฆฌ๊ฐ ball number์ผ ๋, ๋ ๋ฒ์งธ ์๋ฆฌ๊ฐ ball number์ผ ๋, ์ธ ๋ฒ์งธ ์๋ฆฌ๊ฐ ball number์ผ ๋์ ๊ฒฝ์ฐ๋ฅผ ๋๋๊ณ , ๋๋จธ์ง ์๋ฆฌ์๋ 1๋ถํฐ 9๊น์ง ์ฐจ๋ก๋๋ก ๋์ ํ๋๋ฐ, ์ด ๋ ์ค๋ณต๋ ์ซ์๊ฐ ๋์ค์ง ์๊ฒ ํ๊ณ 1๋ฒ์์ ํํฐ๋งํ ์๋ ๋์ค์ง ์๊ฒ ํ๋ค.
์ด๋ฐ์์ผ๋ก ๊ฐ๊ฐ ๊ฒฝ์ฐ๋ง๋ค ๊ฐ๋ฅํ ์๋ฅผ ๊ตฌํด์ค๋ค์์ set ์ ๋ฃ์ด์ค๋ค. ํ์ง๋ง ์ด ํ์ด์ ๊ฒฝ์ฐ ํ๋์ ๋ต๋ณ์ ํตํด์๋ง ์ ๋ต์ ์ ์ถํ๊ณ , ๋ต๋ณ๋ค๊ณผ์ ๊ด๊ณ์์ ์ ์ถํ ์ ์๋ ๊ฒ์ ๊ณ ๋ คํ์ง ๋ชปํ๋ค.
ํต๊ณผํ ํ์ด ์์ด๋์ด
์ ๋ต์ด ๋ ์ ์๋ ์ ๋ผ๋ฉด ์ง๋ฌธ์ผ๋ก ์ฃผ์ด์ก๋ ์๋ค์ strike, ball ๊ฐฏ์์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํด์ผ ํ๋ค. ๋ฐ๋ผ์ 3์๋ฆฌ ์ ์ค ๋ชจ๋ ์๊ฐ ๋ค๋ฅด๋ฉด์ 1~9๊ฐ ํฌํจ๋ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด์ ๋ง๋ค๊ณ , ๋ฐฐ์ด์ ๊ฐ ๊ฐ์ด ์ง๋ฌธ์ ๋์จ ๋ชจ๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋์ง ํ์ธํ๋ฉด ๋๋คโฆ.
์ ๋ต ์ฝ๋
const fs = require("fs");
const filePath = process.platform === "linux" ? '/dev/stdin' : '../input.txt';
let input = fs.readFileSync(filePath).toString().split('\n').slice(0,-1);
let [n, ...list] = input;
let arr = [];
for(let i = 1; i < 10; i++){
for(let j = 1; j <10; j++){
for(let k = 1; k < 10; k++){
if(i !== j && j !== k && i!==k){
arr.push(`${i}${j}${k}`);
}
}
}
}
let cnt = 0;
for (let num of arr){
let isAvailable = false;
for(let item of list) {
let [s, b] = [0, 0];
let [question, strike, ball] = item.split(' ');
for (let i = 0; i < 3; i++){
if(question[i] === num[i]){
s++;
}else{
if(num.includes(question[i])){
b++;
}
}
}
if(s=== +strike && b=== +ball){
isAvailable = true;
}else{
isAvailable = false;
break;
}
}
cnt += isAvailable ? 1:0;
}
console.log(cnt)