https://www.acmicpc.net/problem/1244
남자의 경우, 배수가 되는 번호에 위치한 스위치를 전환합니다.
받은 수가 a이라면
a * 1, a * 2, a * 3, a * n...
이때 a * n에 해당하는 값이 스위치 배열의 바깥 범위를 참조하지 않도록 주의해야 합니다.
여자의 경우,
받은 수가 a라면 a를 기준으로 '대칭이 되는 최대 길이'에 위치한 스위치를 모두 전환합니다. 만약 대칭이 존재하지 않는 다면, 즉 '대칭이 되는 최대 길이'가 1이라면 a에 위치한 스위치만 전환합니다. 이때도 역시 스위치 배열의 바깥을 참조하지 않도록 주의해야 합니다.
let lt = (rt = num);
while (lt - 1 > 0 && rt + 1 < board.length) {
if (board[lt - 1] === board[rt + 1]) {
lt -= 1;
rt += 1;
} else {
break;
}
}
for (let k = lt; k <= rt; k++) {
board[k] = board[k] === 1 ? 0 : 1;
}