입출력 예
| baseball | return |
|---|---|
| [[123, 1, 1], [356, 1, 0], [327, 2, 0], [489, 0, 1]] | 2 |
function solution(baseball) {
var answer = 0;
for(let i = 123; i <= 987; i++) {
let isTrue = true
i = String(i)
if(i[0] !== i[1] // 1,2,3자리 수가 서로 중복되지않고
&& i[0] !== i[2]
&& i[1] !== i[2]
&& i.indexOf('0') === -1) {// 0이 포함안되면
for(let j = 0; j < baseball.length; j++) {
let chk = String(baseball[j][0]) // A가 말하는 숫자
let strike = 0
let ball = 0
/* 내가 만든 i의 0,1,2 idx와 baseball[j][0]의 0,1,2 idx가 같으면 strike
내가만든 i의 0 idx가 baseball[j][1] or baseball[j][2]와 같거나
내가만든 i의 1 idx가 baseball[j][0] or baseball[j][2]와 같거나
내가만든 i의 2 idx가 baseball[j][0] or baseball[j][1]와 같으면 ball
근데 같은게 하나만 나와도 각 idx는 중복되지 않으니 넘어가도 된다.
*/
for(let a = 0; a < 3; a++) {
if(i[a] === chk[a]) { // 스트라이크일 때
strike++
continue;
} else if(i.indexOf(chk[a]) !== -1 && i.indexOf(chk[a]) !== a) { // 볼일때
ball++
continue;
}
}
if(strike !== baseball[j][1] || ball !== baseball[j][2]) {
isTrue = false
}
}
if(isTrue === true) {
answer++
}
}
}
return answer
}