https://www.acmicpc.net/problem/2563
문제 설명이 본격적이라 당황할 수 있지만, 생각해보면 쉽게 풀 수 있는 문제입니다.
저는 기본적으로 흰색 도화지를 [0-100] 좌표를 가진 2차원 Cartesian Coordinate로 생각했습니다.
input으로 검은색 사각형이 들어갈 left bottom 좌표가 들어옵니다.
이를 바탕으로 x y 각각 10만큼씩 해당하는 위치에 색을 칠해준다고 생각합시다.
#include <iostream>
using namespace std;
int main(){
int whiteBoard[100][100];
for(int x=0; x<100; x++){
for(int y=0; y<100; y++){
whiteBoard[x][y] = 0;
}
}
int num;
cin >>num;
int inputX, inputY;
for(int i=0; i<num; i++){
cin >> inputX >> inputY;
for(int x=inputX; x<inputX + 10; x++){
for(int y=inputY; y<inputY + 10; y++){
whiteBoard[x][y] = 1;
}
}
}
int areaFilledOfBlack = 0;
for(int x=0; x<100; x++){
for(int y=0; y<100; y++){
if(whiteBoard[x][y] == 1){
areaFilledOfBlack++;
}
}
}
cout << areaFilledOfBlack;
}
3단계로 나누어서
1. 100X100의 whiteBoard를 생성
2. 검은 종이에 입력받는 만큼 whiteBoard 배열을 1로 바꿔주는 과정
3. 배열 내의 1의 수를 세어 출력
무튼 그렇습니다.
오늘은 이거로 끝!
https://github.com/J2on/BaekjoonOnlineJudge/blob/master/Code/Silver/2563.cpp
< 백준 BaekJoon : 2903번 중앙 이동 알고리즘> C++ (0) | 2023.08.02 |
---|---|
< 백준 BaekJoon : 11005번 진법변환 2> C++ (0) | 2023.08.01 |
< 백준 BaekJoon : 10798번 세로읽기> C++ (0) | 2023.07.31 |
< 백준 BaekJoon : 2566번 최댓값> C++ (0) | 2023.07.31 |
< 백준 BaekJoon : 25206번 너의 평점은> C++ (0) | 2023.07.31 |
댓글 영역