(1).백준 9455번 박스는 박스를 쌓는다고 할 떄의 이동거리를 구해줘야 하는 문제였다.
이번에도 세로 형태로 구해줘야 해서 for문 순서를 바꿔주고 쌓였을 때의 총 이동거리와
쌓이지 않은 값의 이동거리를 기본 위치 기준으로 다 계산해주기 위해서
쌓이지 않은 값은 현재 위치를 다 더해주고 쌓인 기준값은 박스 개수를 구해준 다음
calculate을 의도한 cal 함수에 담아서 1부터 n개까지 더한 값만큼의 이동한 값을 뺴는 방식으로 처리했고
해당 row들의 총 합을 result에 담아서 출력했다.
const input = `3
5 4
1 0 0 0
0 0 1 0
1 0 0 1
0 1 0 0
1 0 1 0
3 3
1 1 1
1 1 1
0 0 0
5 6
1 0 1 1 0 1
0 0 0 0 0 0
1 1 1 0 0 0
0 0 0 1 1 1
0 1 0 1 0 1`.split('\n').map(el => el.split(' ').map(Number))
const cal = (x) =>{
let sum = 0
for(let i = 1 ; i <= x ; i++){
sum += i
}
return sum
}
for(let i = 1 ; i < input.length ; i++){
const [x,y] = input[i]
let result = 0
for(let k = 0 ; k < y ; k++){
let count = 0
let sum = 0
for(let j = i+1 ; j <= i+x ; j++){
if(input[j][k]){
count++
sum += i + x - j + 1
}
}
result += (sum - cal(count))
}
console.log(result)
i += x
}'회고' 카테고리의 다른 글
| [개발일지] - 920 (0) | 2026.01.19 |
|---|---|
| [개발일지] - 919(주말) (0) | 2026.01.18 |
| [개발일지] - 916 (0) | 2026.01.16 |
| [개발일지] - 915 (0) | 2026.01.15 |
| [개발일지] - 914 (0) | 2026.01.14 |
