| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- Javascript
- 백준1026
- 1931 node.js
- 자바스크립트 딥다이브
- 모던자바스크립트
- 11047 node.js
- 코딩
- 노마드스터디
- 21313 nodejs
- IT5분잡학사전
- 11399 node.js
- 백준1789
- 백준25176
- 2217 node.js
- 노개북
- CSS flex
- 모던자바스크립트 딥다이브
- 개발자
- 1541 node.js
- 개인프로젝트
- const
- 1789 node.js
- 자바스크립트 함수
- 백준21313
- 1026 node.js
- 자바스크립트 일급객체
- 14655 nodejs
- 노마드북클럽
- flex box
- 모던자바스크립트DeepDive
Archives
- Today
- Total
캐또's coding
2563 - 색종이 - node.js 본문
https://www.acmicpc.net/problem/2563
2563번: 색종이
가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록
www.acmicpc.net
다른 어떤 풀이가 있는지 모르겠지만 이전에 풀었던 소수 문제들처럼 이번 문제 역시 넓이를 구하는 방식으로 생각하지 않고 100 * 100의 true와 false로 해결해볼 수 있을 것이다.
1. 100 * 100 크기로 false의 배열을 채운다.
2. 입력된 색종이의 넓이만큼 각각 true로 바꿔준다.
2.1. 입력된 좌표부터 +10씩만큼이 색종이의 넓이가 될 수 있다.
2.2. [3,7] 이라면 3~13 , 7~17 넓이만큼이다.
3. 배열을 순회하면서 true가 몇 개인지 세고 출력하면 된다.
const fs = require("fs");
const input = fs.readFileSync("dev/stdin").toString().trim().split("\n");
// 우선 언제나처럼 파일을 가져온다.
let arr = [];
//빈 배열을 만들어준 뒤
for (i = 0; i < 100; i++) {
arr.push(new Array(100).fill(false));
}
// 100개의 false가 들어있는 array 100개를 넣어준다.
const papers = Number(input[0]);
// 입력받은 값의 첫 번째 값인 종이 갯수를 할당해둔다.
for (i = 1; i <= papers; i++) {
let [x, y] = input[i].split(" ").map(Number);
// 입력 받은 값의 x좌표 값과 y좌표값을 가져와서 각각 할당한다.
for (let j = 0; j < 10; j++) {
for (let k = 0; k < 10; k++) {
arr[x + j][y + k] = true;
}
}
// 반복문을 돌면서 x부터 x+10까지, y부터 y+10까지의 값들을 true로 바꿔준다.
}
const result = arr.reduce((cnt, element) => {
for (const el of element) {
if (el) {
cnt++;
}
}
return cnt;
}, 0);
// reduce를 사용해서 값을 계산한다.
// 만약 arr를 돌면서 값이 true일 경우 cnt 카운트 ++을 해준다.
console.log(result);
// 반복이 끝난 뒤 마지막으로 카운트 된 값을 출력하면 끝'기초 공부 > 백준 문제 풀이' 카테고리의 다른 글
| 2587 - 대표값2 - node.js (0) | 2023.01.05 |
|---|---|
| 2750 - 수 정렬하기 - node.js (0) | 2023.01.03 |
| 2566 - 최댓값 - node.js (0) | 2022.12.22 |
| 2738 - 행렬 덧셈 - node.js (0) | 2022.12.20 |
| 9020 - 골드바흐의 추측 - node.js (0) | 2022.12.08 |
Comments