오늘도 class문제를 풀고 있는데 대차게 시간제한으로 말아먹고

열심히 해결하던 도중 할머니의 98세 생신이셔서 친척 버스트콜이 울려버렸고

출석을 위해 중간에 집으로 돌아왔지만 오후 10시가 넘어 도착할 수 있었다.

 

 

 

 

 

(1).백준 1100 하얀 칸은 8x8의 체스판에서 F라는 말이 올라가 있을 때
현재 하얀 칸에는 몇개의 말이 올라가 있는지를 출력해야 하는 문제였다.

체스판 문제들이 다 그렇듯 시작 칸을 기준으로 동일한 칸수들은 
동일한 나머지를 보유하는 규칙을 가지고 있는데 
예를 들어 하얀색 칸일 경우 사방으로 2칸을 이동해야만 동일한 칸이 나오게 되며
사방으로 1칸을 이동할 경우 검은색 칸이 나오게 된다.

(0,0)이라는 하얀색 칸이 결정된 경우 (4,4)도 하얀색 칸일 수 밖에 없고 
그 사방의 (3,4), (5,4), (4,3), (4,5)는 검은 색 칸이 된다.

이런 1과 2 차이의 규칙 덕분에 %2를 처리하여 0 또는 1로 색을 판별할 수 있고
지정된 색(여기서는 흰색이고 0,0이 흰색이므로 나머지가 0)과 
말이 올라왔다는 표시("F")를 확인한 경우 count에 1을 추가하는 방식으로 처리할 수 있다.

const input = `.F.F...F
F...F.F.
...F.F.F
F.F...F.
.F...F..
F...F.F.
.F.F.F.F
..FF..F.`.split('\n')

let count = 0
for(let i = 0 ; i < 8 ; i++){
    for(let j = 0 ; j < 8 ; j++){
        if((i+j)%2 === 0 && input[i][j] === 'F'){
            count++
        }
    }
}

console.log(count)

'회고' 카테고리의 다른 글

[취업준비일지] 취업준비일지를 마치며  (0) 2023.03.20
[취업준비일지] - 150  (0) 2023.03.19
[취업준비일지] - 148  (0) 2023.03.17
[취업준비일지] - 147  (0) 2023.03.16
[취업준비일지] - 146  (0) 2023.03.15

+ Recent posts