(1).백준 14472번 休憩スペース (Refreshment Area)는 특정 범위와 블럭 사이즈를 제공할 때

가로 세로 어떤 칸이든 넣을 수 있는 경우의 수를 구해야 하는 문제로

모든 칸에 넣어보며 비교하는 방식으로 풀 수 있었는데

가로의 경우에는 slice로 잘라서 직접 비교한 다음 처리했고

세로의 경우에는 정상 순회 및 순회 중 세로로 블럭 사이즈만큼 내려가며 3중 for문으로 문자열을 합쳐주고

합친 문자가 블럭과 동일한 경우 통과 처리하는 방식으로 count 변수값을 증가시켜서 해결했다.

 

const input = `4 7 5
.#.....
.....##
.......
#......`.split('\n')

const [x, y, n] = input[0].split(' ').map(Number)
const str = '.'.repeat(n)
let count = 0

for(let i = 1 ; i <= x ; i++){
    for(let j = 0 ; j <= y - n ; j++){
        if(input[i].slice(j, j+n) == str){
            count++
        }
    }
}

for(let i = 1 ; i <= x - n + 1 ; i++){
    for(let j = 0 ; j < y ; j++){
        let strs = ''
        for(let k = i ; k < i+n ; k++){
            strs += input[k][j]
        }
        if(strs == str){
            count++
        }
    }
}



console.log(count)

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

[개발일지] - 932(주말)  (0) 2026.02.02
[개발일지] - 931(주말출근)  (0) 2026.02.01
[개발일지] - 930  (0) 2026.01.31
[개발일지] - 929  (0) 2026.01.30
[개발일지] - 928  (0) 2026.01.29

+ Recent posts