본문 바로가기
🖋️PS

색종이 2563 c++ (이중배열 이용)

by 덩크냥 2023. 1. 3.

의문 : 어떻게 좌표들을 두개도아니고 여러개를 받아서 겹치는 부분을 계산할 수 있을까,,??

한번만 겹친다는 전제가 있다면 vector pair써서 어떻게든하겠는데 그걸 알 수가 없잖아.

생각해보니 체크된걸 또 체크해도 변하지 않는게 있다. 바로바로 값을 초기화해주는것

ex 변수 p 값이 1인데 p = 1이라고 해봤자 불변.

그렇다면 도화지 사이즈는 100X100이고 이를 이중배열로 찍어보면 어떨까???? 좌표 점이랑 넓이랑 헷갈릴수도 있으니 좌표가 면을 가리킨다고 보면 안헷갈린다.

이렇게 arr을 101까지 한 이유는 100번째는 99로 표현되기에 101까지해야 배열 넘버가 100까지 존재한다. (헷갈리지않기위해 한것)

일단 좌하단꼭짓점만 좌표를 주니까 +10씩 해야한다. 그게 10~17번 라인

이렇게 더해주면끝

#include <iostream>

using namespace std;

int main(){

int pnum;

cin >> pnum;

int arr[101][101] = {0,};

int x, y;

int sum = 0;

for(int i = 0; i < pnum; i++){

cin >> x >> y;

for(int j = x; j < x + 10; j++){

for(int k = y; k < y+ 10; k++){

arr[j][k] = 1;

}

}

}

for(int i = 1; i < 101; i++){

for(int j = 1; j < 101; j++){

if(arr[i][j] == 1){

sum++;

}

}

}

cout <<sum;

}

'🖋️PS' 카테고리의 다른 글

Multimax c++ 14753  (0) 2023.01.09
수열 2559 c++ queue,vector,sort  (0) 2023.01.08
백준 단어뒤집기2 17413 c++(이중vector, tag기능)  (1) 2022.12.24
좌표정렬하기 11650 c++(pair, vector, 정렬)  (0) 2022.12.23
덱 10866 c++  (0) 2022.12.23