반응형
DoZZang
Do IT
DoZZang
전체 방문자
오늘
어제
  • Programming
    • Git
    • Web
    • 기타
    • Python
      • CodeUp
    • Math
    • Algorithm
    • Baekjoon
    • C,C++
    • Life
      • 독서
      • Just
      • 영화

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
DoZZang

Do IT

[C] 백준 2563번 : 색종이
Baekjoon

[C] 백준 2563번 : 색종이

2023. 2. 1. 14:24
반응형

https://www.acmicpc.net/problem/2563

 

2563번: 색종이

첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변

www.acmicpc.net

어렵게 생각할 필요가 전혀 없는 문제인데 어렵게 생각해서 푸는데 시간이 꽤 오래 걸렸다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
	int paper[100][100] = { 0, };
	int n, x, y, count = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d %d", &x, &y);
		for (int j = y; j < y + 10; j++) {	//흔히 알고있는 x좌표는 2차원 배열에서 열에 해당 y좌표는 2차원 배열에서 행에 해당
			for (int k = x; k < x + 10; k++) {
				paper[j][k] = 1;	
			}
		}
	}
		for (int j = 0; j < 100; j++) {
			for (int k = 0; k < 100; k++) {
				if (paper[j][k] == 1) {
					count++; //어차피 1로 초기화된 것을 count하는것이기 때문에 중복은 없다.
				}
			}
		}
	printf("%d",count);
}

전혀 어려울 것이 없는 문제입니다.

총 넓이에서 빼준다는 생각보다는 2차원 배열의 성질을 이용하여 초기 배열의 값을 0으로 정의한 후

색종이가 들어가는 부분의 배열의 인덱스를 1로 초기화시키면 되는 간단한 문제입니다.

 

모두 초기화 시킨 후 배열의 값이 1인 index를 찾아 count에 1을 더한다면겹치는 부분은 자연히 중복으로 세어지지 않습니다.

 

2차원 배열의 특성과 행과 열을 이해했다면 쉽게 풀 수 있는 문제였습니다.

 

 

반응형
저작자표시 (새창열림)

'Baekjoon' 카테고리의 다른 글

[C] 백준 10829번 : 이진수 변환  (0) 2023.08.10
[C] 백준 2750번 : 수 정렬하기  (1) 2023.02.02
[C] 백준 2090번 : 골드바흐의 추측  (2) 2023.01.31
[C]백준 2566번 : 최댓값  (0) 2023.01.29
[C] 백준 2738번 : 행렬 덧셈  (2) 2023.01.27
    'Baekjoon' 카테고리의 다른 글
    • [C] 백준 10829번 : 이진수 변환
    • [C] 백준 2750번 : 수 정렬하기
    • [C] 백준 2090번 : 골드바흐의 추측
    • [C]백준 2566번 : 최댓값
    DoZZang
    DoZZang
    과정은 힘들지만 성장은 즐겁습니다.

    티스토리툴바