[boj] 2630번: 색종이 만들기

2023. 1. 13. 15:32·Problem Solving/Baekjoon

출처 : https://www.acmicpc.net/problem/2630

 

2630번: 색종이 만들기

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

www.acmicpc.net

 

 

 

1. 문제 설명 

종이의 크기가 N x N인 정사각형에서 각 칸에 1(파란색)과 0(하얀색)으로 칠해져있을 때 일정한 규칙에 따라 잘라서 자른 모든 면이 모두 같은 색이면 그 칸의 수를 반환하고, 모두 같은 색이 아니라면 똑같은 크기의 N/2 x N/2색종이로 조건을 만족할 때 까지 반복한다.

 

 

 


2. 접근 방식 

 


3. 주석 달기 (변수 설명, 각 줄마다 문장으로 설명, 함수 설명)

import sys

N = int(sys.stdin.readline())
paper = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] 

result = []

def solution(x, y, N) :
    color = paper[x][y]
    for i in range(x, x+N) :
        for j in range(y, y+N) :
            if color != paper[i][j] :
                solution(x, y, N//2)
                solution(x, y+N//2, N//2)
                solution(x+N//2, y, N//2)
                solution(x+N//2, y+N//2, N//2)
                return
    if color == 0 :
        result.append(0)
    else :
        result.append(1)


solution(0,0,N)
print(result.count(0))
print(result.count(1))

 

 


4. 분석

1. Time : n의 최대가 128이고, 2차원 배열이기때문에 (128 * 128) = 16384이고, 분할 정복의 TC는 O(NlogN)이기 때문에 주어진 1초안에 충분히 가능하다. 
2. Space :
3. 소요시간 : 1시간 
4. 제출 횟수 (무작정 제출하기 않기)  : 4회
5. 어려웠던 부분과 해결한 방법 : 비슷한 유형 많이 풀어보기
6. 실수가 줄어들었는가 ? 

'Problem Solving/Baekjoon' 카테고리의 다른 글
  • [boj] 11399번: ATM
  • [boj] 1026번: 보물
  • [boj] 1655번: 가운데를 말해요
  • [boj] 14620번: 꽃길
kimdozzi
kimdozzi
끝까지 포기하지 않으면, 내가 다 이겨!
  • kimdozzi
    도브로
    kimdozzi
  • 전체
    오늘
    어제
    • 분류 전체보기 (132)
      • Problem Solving (49)
        • Baekjoon (29)
        • Programmers (0)
        • LeetCode (17)
        • 삼성 유형 (2)
      • Computer Science (27)
        • Operating System (2)
        • Algorithms (13)
        • Network (6)
        • DataBase (6)
      • Backend (33)
        • JavaScript (0)
        • TypeScript (6)
        • Java (7)
        • Spring Boot (7)
        • Spring Security (6)
        • JPA (2)
        • Mybatis (1)
        • Junit5 (1)
        • Redis (3)
      • DevOps (14)
        • Git, Github (5)
        • docker (4)
        • AWS (3)
        • nginx (2)
      • etc (6)
        • IntelliJ (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 티스토리
    • 설정
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    PrefixSum
    온라인 쿼리
    docker image
    세그먼트 트리
    누적합
    인터페이스
    interface
    구간합
    TypeScript
    알고리즘
    컨테이너
    imos법
    segment tree
    인덱서블 타입
    도커
    삼성기출
    Bucket
    인덱스 시그니처
    파이썬
    오프라인 쿼리
    python
    티스토리챌린지
    점 업데이트
    타입스크립트
    docker
    오블완
    구간 업데이트
    CORS
    백준
    S3
    AWS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
kimdozzi
[boj] 2630번: 색종이 만들기
상단으로

티스토리툴바