kokoball의 devlog
article thumbnail
728x90



문제

https://www.acmicpc.net/problem/2669

 

문제 해석

이 문제는 지나간 거리를 구하는 문제처럼 평면의 각 점에 대한 존재 여부를 확인하는 방법으로 구현 가능하다.

 

각 직사각형의 좌표를 입력하는데 주의할 점은 꼭짓점 좌표를 포함하면 안 된다.

 

풀이

const filePath = process.platform === "linux" ? "dev/stdin" : "../test.txt";
const input = require("fs").readFileSync(filePath).toString().trim().split("\n");

function solution(input) {
  const grid = Array.from({ length: 101 }, () => Array(101).fill(false));
  let totalArea = 0;

  input.forEach((rect) => {
    const [x1, y1, x2, y2] = rect.split(" ").map(Number);

    for (let x = x1; x < x2; x++) {
      for (let y = y1; y < y2; y++) {
        grid[x][y] = true;
      }
    }
  });

  // 격자 전체를 확인하여 true인 셀의 수를 카운트
  for (let x = 1; x <= 100; x++) {
    for (let y = 1; y <= 100; y++) {
      if (grid[x][y]) totalArea++;
    }
  }

  return totalArea;
}

console.log(solution(input));

 

 

 

728x90
profile

kokoball의 devlog

@kokoball-dev

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!