728x90
오늘은 2차원 배열 단계 마지막 시간이다.
문제 2563번
https://www.acmicpc.net/problem/2563
문제를 보고 어떻게 겹치는 부분을 빼주지하고 고민하다가 풀이를 찾아보았다.
찾아보니 빼는 것이 아닌 2차원 배열을 만들어 채워나가는 것이 좋다고 한다.
먼저 배열을 만들어 0으로 채우고, 세로와 가로의 각 크기가 10이라고 했으니 이중 for문으로 10씩 반복해준다.
그리고 해당 위치의 요소가 0이라면 아직 채워지지 않았다는 뜻이니까 1로 만들고 카운트를 해준다. 만약 0이 아니라면 채워졌다는 뜻(겹친 부분)이기 때문에 countinue를 해서 넘어가준다.
마지막에 count를 출력하면 최종 크기가 나올 것이다.
const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt'
const input = require("fs").readFileSync(readFileSyncAdress).toString().split('\n');
let n = input.shift();
let paper = Array.from(Array(100), () => Array(100).fill(0));
let count = 0;
for(let i=0;i<n;i++){
let x = Number(input[i].split(' ')[0]);
let y = Number(input[i].split(' ')[1]);
for(let j=0;j<10;j++){
for(let w=0;w<10;w++){
if(paper[x+j][y+w] === 0){
paper[x+j][y+w] = 1;
count++;
} else{
continue;
}
}
}
}
console.log(count);
[참고] https://ggcoding.tistory.com/123
728x90
'백준 > JavaScript' 카테고리의 다른 글
[JS] 백준 일반 수학 1 - 두 번째 이야기 (0) | 2024.01.31 |
---|---|
[JS] 백준 일반 수학 1 - 첫 번째 이야기 (0) | 2024.01.30 |
[JS] 백준 2차원 배열 - 두 번째 이야기 (0) | 2024.01.28 |
[JS] 백준 2차원 배열 - 첫 번째 이야기 (0) | 2024.01.27 |
[JS] 백준 심화 1 - 마지막 이야기 (0) | 2024.01.26 |