[C/C++]백준 2630번 - 색종이 만들기

2021. 9. 24. 22:51· 알고리즘/백준 문제풀이
목차
  1. 문제
반응형

 

 

문제 링크 : https://www.acmicpc.net/problem/2630

 

2630번: 색종이 만들기

첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.

www.acmicpc.net

문제

색종이 수를 세는 문제. 자세한 내용은 위의 링크를 참고.

 

 


접근방식

 

쿼드 트리 문제와 똑같은 문제다. base case에서 1인 경우 파란색 색종이 변수의 수를 1 증가시키고,
0인 경우에는 하얀색 색종이 변수의 수를 1증가 시키면 된다.

단, 입력에 공백이 있어서 char이 아닌 int형 배열을 이용했다.

 

코드

#include<cstdio>

int paper[128][128];
int numOfBlue = 0;
int numOfWhite = 0;

void paparCutter(int y, int x, int size)
{
	int flag = 0;
	int head = paper[y][x];

	for (int dy = 0; dy < size; dy++) {
		for (int dx = 0; dx < size; dx++) {
			if (paper[y + dy][x + dx] != head) {
				flag = 1;
				break;
			}
		}
		if (flag == 1) break;
	}

	if (flag != 1) {
		if (head == 1) numOfBlue += 1;
		else numOfWhite += 1;
		return;
	}

	else {
		int half = size / 2;
		paparCutter(y, x, half);
		paparCutter(y, x + half, half);
		paparCutter(y + half, x, half);
		paparCutter(y + half, x + half, half);

		return;
	}
}

int main()
{
	int t;
	scanf("%d", &t);

	for (int i = 0; i < t; i++) {
		for (int j = 0; j < t; j++) {
			scanf("%d", &paper[i][j]);
		}
	}

	paparCutter(0, 0, t);

	printf("%d\n%d\n", numOfWhite, numOfBlue);

	return 0;
}

 

 

다른 문제의 코드 : https://github.com/DaeeYong/Algorithm-Solution-

 

DaeeYong/Algorithm-Solution-

Solution for Algorithm Problem. Contribute to DaeeYong/Algorithm-Solution- development by creating an account on GitHub.

github.com

 

반응형

'알고리즘 > 백준 문제풀이' 카테고리의 다른 글

[C/C++]백준 2752번 - 세수정렬  (0) 2021.10.18
[C/C++]백준10808번 - 알파벳 개수  (0) 2021.10.18
[C/C++]백준 1992번 - 쿼드트리  (0) 2021.09.22
[C/C++]백준 2503번 - 숫자야구  (0) 2021.09.01
[C/C++]백준 2579번 - 계단 오르기  (0) 2021.08.09
  1. 문제
'알고리즘/백준 문제풀이' 카테고리의 다른 글
  • [C/C++]백준 2752번 - 세수정렬
  • [C/C++]백준10808번 - 알파벳 개수
  • [C/C++]백준 1992번 - 쿼드트리
  • [C/C++]백준 2503번 - 숫자야구
ya_ya
ya_ya
주제 상관없이 작성하고 싶은 글들을 작성합니다.
반응형
ya_ya
기록노트
ya_ya
전체
오늘
어제
  • 목록 (90)
    • IT제품리뷰 (2)
    • 컴퓨터 (30)
      • 웹 애플리케이션 (3)
      • 잡지식 (6)
      • 암호학 (1)
      • 자료구조 (3)
      • C\C++ (5)
      • 컴퓨터 구조 (1)
      • 영상처리 (0)
      • 컴퓨터네트워크 (0)
      • learnopengl 번역 (3)
      • 컴퓨터그래픽스 (6)
      • CMake (0)
      • 짧은 지식 (1)
    • 알고리즘 (34)
      • 백준 문제풀이 (30)
      • 알고리즘 (4)
    • 일상이야기 (24)
      • 술 (1)
      • 게임후기 (1)
      • 아무거나 (16)
      • 프라모델 (4)
      • 운동일지 (0)
      • 책리뷰 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
ya_ya
[C/C++]백준 2630번 - 색종이 만들기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.