언유상씨의 건전한 취미생활

[백준 알고리즘] 색종이(2563번) C로풀기 본문

건전한 취미생활 - 알고리즘

[백준 알고리즘] 색종이(2563번) C로풀기

언유상 2020. 1. 30. 15:04

문제 이름 : 색종이

문제 번호 : 2563

사용 언어 : C

문제 유형 : 구현

 

문제는 다음과 같다.

문제를 풀어보도록 하자.

 

이 문제를 풀 때 있어서의 핵심 아이디어는, 0으로 꽉 채운 배열에 색종이가 올려진 부분들을 1로 바꾸어 준뒤 1의 개수를 세면 된다!

 

따라서 코드는 다음과 같다.

 

#define _CRT_SECURE_NO_WARNINGS
#include < stdio.h>  
int main() {
    int pan[100][100] = { 0, }; #0으로 채워진 2차원 배열
    int n, r, h;
    int cnt = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {  
        scanf("%d %d", &r, &h);
        for (int m = 100 - (h + 10); m < 100 - h; m++) {  #색종이가 올라간 부분의 값을 1로 바꾸어 주는 중
            for (int k = r; k < r + 10; k++) {
                pan[m][k] = 1;
            }
        }
    }
        for (int i = 0; i < 100; i++) {  #1의 개수 세기
            for (int j = 0; j < 100; j++) {  
                if (pan[i][j] == 1)
                    cnt++;
            }
        }
    printf("%d", cnt);
    return 0;
}

Comments