백준 2563 - 색종이 (set) JS 본문
반응형
https://www.acmicpc.net/problem/2563
문제는 주어진 입력값으로 영역을 구하는 문제다.
100 * 100 사이즈의 배열을 생성하고 반복문으로 영역이 포함되는 좌표를 '색종이가 덮은' 영역으로 처리해줄 수 있지만,
이 경우는 '덮은 영역 처리', '덮은 영역 확인'으로 두 번의 연산이 필요하기에 그리 좋은 방식은 아니다.
때문에 나는 좌표를, 중복된 데이터를 허용하지 않는 Set() 생성자를 활용해 문제를 해결했다.
const fs = require('fs')
const input = fs.readFileSync(process.platform === "linux" ? "/dev/stdin":"입력.txt")
.toString().trim().split('\n')
function solution(data) {
data.shift()
// Set() 생성자 생성
const set = new Set()
data.forEach((el)=> {
const [x,y] = el.split(' ').map(Number)
for(let i = 0 ; i < 10 ; i ++) {
for(let j = 0 ; j < 10 ; j ++) {
// set 에 데이터 추가
// 이때 좌표를 저장하는 것이므로 ':'를 통해 x,y축을 구분했다
set.add(`${x+j}:${y+i}``)
}
}
})
// set에 담긴 데이터의 길이를 반환하는 size 메서드
console.log(set.size)
}
solution(input)
반응형
'개발 > algorithm' 카테고리의 다른 글
백준15988 - 1,2,3 더하기 3 (다이나믹 프로그래밍) JS (0) | 2023.09.17 |
---|---|
백준 11478 - 서로 다른 부분 문자열의 갯수 (substr) JS (0) | 2023.09.15 |
프로그래머스 - Lv.2 전화번호 목록 (해시) JS (0) | 2023.09.13 |
백준 1487 - 물건팔기 (reduce) JS (0) | 2023.09.12 |
백준 11586 - 지영 공주님의 마법 거울 (객체에 함수 저장) JS (0) | 2023.09.11 |
Comments