[๋ฐฑ์ค€] 2630. ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ/Python - Silver2

2025. 8. 10. 16:35ยทCoding Test/Algorithms

โ“๋ฌธ์ œ

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

์„ฑ๋Šฅ ์š”์•ฝ

๋ฉ”๋ชจ๋ฆฌ: 111040 KB, ์‹œ๊ฐ„: 116 ms

๋ถ„๋ฅ˜

๋ถ„ํ•  ์ •๋ณต, ์žฌ๊ท€

๋ฌธ์ œ ์„ค๋ช…

์•„๋ž˜ <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ •์‚ฌ๊ฐํ˜•์นธ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ์ข…์ด๊ฐ€ ์ฃผ์–ด์ ธ ์žˆ๊ณ , ๊ฐ ์ •์‚ฌ๊ฐํ˜•๋“ค์€ ํ•˜์–€์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๊ฑฐ๋‚˜ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๋‹ค. ์ฃผ์–ด์ง„ ์ข…์ด๋ฅผ ์ผ์ •ํ•œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ž˜๋ผ์„œ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ํ•˜์–€์ƒ‰ ๋˜๋Š” ํŒŒ๋ž€์ƒ‰ ์ƒ‰์ข…์ด๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.

์ „์ฒด ์ข…์ด์˜ ํฌ๊ธฐ๊ฐ€ N×N(N=2k, k๋Š” 1 ์ด์ƒ 7 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜) ์ด๋ผ๋ฉด ์ข…์ด๋ฅผ ์ž๋ฅด๋Š” ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ „์ฒด ์ข…์ด๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ์ง€ ์•Š์œผ๋ฉด ๊ฐ€๋กœ์™€ ์„ธ๋กœ๋กœ ์ค‘๊ฐ„ ๋ถ€๋ถ„์„ ์ž˜๋ผ์„œ <๊ทธ๋ฆผ 2>์˜ I, II, III, IV์™€ ๊ฐ™์ด ๋˜‘๊ฐ™์€ ํฌ๊ธฐ์˜ ๋„ค ๊ฐœ์˜ N/2 × N/2์ƒ‰์ข…์ด๋กœ ๋‚˜๋ˆˆ๋‹ค. ๋‚˜๋ˆ„์–ด์ง„ ์ข…์ด I, II, III, IV ๊ฐ๊ฐ์— ๋Œ€ํ•ด์„œ๋„ ์•ž์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ชจ๋‘ ๊ฐ™์€ ์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ์ง€ ์•Š์œผ๋ฉด ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋˜‘๊ฐ™์€ ํฌ๊ธฐ์˜ ๋„ค ๊ฐœ์˜ ์ƒ‰์ข…์ด๋กœ ๋‚˜๋ˆˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ๊ณผ์ •์„ ์ž˜๋ผ์ง„ ์ข…์ด๊ฐ€ ๋ชจ๋‘ ํ•˜์–€์ƒ‰ ๋˜๋Š” ๋ชจ๋‘ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๊ฑฐ๋‚˜, ํ•˜๋‚˜์˜ ์ •์‚ฌ๊ฐํ˜• ์นธ์ด ๋˜์–ด ๋” ์ด์ƒ ์ž๋ฅผ ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

์œ„์™€ ๊ฐ™์€ ๊ทœ์น™์— ๋”ฐ๋ผ ์ž˜๋ž์„ ๋•Œ <๊ทธ๋ฆผ 3>์€ <๊ทธ๋ฆผ 1>์˜ ์ข…์ด๋ฅผ ์ฒ˜์Œ ๋‚˜๋ˆˆ ํ›„์˜ ์ƒํƒœ๋ฅผ, <๊ทธ๋ฆผ 4>๋Š” ๋‘ ๋ฒˆ์งธ ๋‚˜๋ˆˆ ํ›„์˜ ์ƒํƒœ๋ฅผ, <๊ทธ๋ฆผ 5>๋Š” ์ตœ์ข…์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ 9์žฅ์˜ ํ•˜์–€์ƒ‰ ์ƒ‰์ข…์ด์™€ 7์žฅ์˜ ํŒŒ๋ž€์ƒ‰ ์ƒ‰์ข…์ด๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค.

์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์ข…์ด์˜ ํ•œ ๋ณ€์˜ ๊ธธ์ด N๊ณผ ๊ฐ ์ •์‚ฌ๊ฐํ˜•์นธ์˜ ์ƒ‰(ํ•˜์–€์ƒ‰ ๋˜๋Š” ํŒŒ๋ž€์ƒ‰)์ด ์ฃผ์–ด์งˆ ๋•Œ ์ž˜๋ผ์ง„ ํ•˜์–€์ƒ‰ ์ƒ‰์ข…์ด์™€ ํŒŒ๋ž€์ƒ‰ ์ƒ‰์ข…์ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

โœ๐Ÿปํ’€์ด

์ฃผ์–ด์ง„ ์ข…์ด๋ฅผ ํ™•์ธํ•˜๋ฉฐ ์ฒ˜์Œ ์ƒ‰๊ณผ ๋‹ค๋ฅธ ์ƒ‰์ด ๋‚˜์˜ค๋ฉด ์ข…์ด๋ฅผ ๋‚˜๋ˆˆ๋‹ค.

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋กœ ํ™•์ธํ•ด๋ณด์ž๋ฉด (0, 0)์€ ํŒŒ๋ž€์ƒ‰์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ (0, 2)๋ฅผ ๋ณด๋ฉด ํ•˜์–€์ƒ‰์ด ๋œ๋‹ค. ์ƒ‰์ด ๋‹ฌ๋ผ์กŒ์œผ๋ฏ€๋กœ ์ข…์ด๋ฅผ 4๋“ฑ๋ถ„ํ•œ๋‹ค. 4๋“ฑ๋ถ„์„ ํ•˜๋ฉด ๊ฐ๊ฐ ์ข…์ด์˜ ์‹œ์ž‘ ์œ„์น˜๋Š” (0, 0), (0, 4), (4, 0), (4, 4)๊ฐ€ ๋œ๋‹ค. ๋ฐ˜๋ณต์ ์œผ๋กœ ํ™•์ธํ•˜๋ฉด์„œ ์ƒ‰์ด ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ๋‚˜์˜ค์ง€ ์•Š์•˜๋‹ค๋ฉด ์ฒซ๋ฒˆ์งธ ์ข…์ด ์ƒ‰์— ๋”ฐ๋ผ ๊ฐ๊ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋ฉด ๋œ๋‹ค.

๐Ÿ’ป์ฝ”๋“œ

import sys

input = sys.stdin.readline

N = int(input())
paper = [list(map(int, input().split())) for _ in range(N)]
blue, white = 0, 0

def divide_and_conquer(y, x, n):
    global blue, white
    color = paper[y][x]
    for i in range(y, y+n):
        for j in range(x, x+n):
            if color != paper[i][j]:
                divide_and_conquer(y, x, n//2)
                divide_and_conquer(y + n//2, x, n//2)
                divide_and_conquer(y, x + n//2, n//2)
                divide_and_conquer(y + n//2, x + n//2, n//2)
                return

    if color == 1:
        blue += 1
    else:
        white += 1

divide_and_conquer(0, 0, N)
print(white, blue, sep='\n')

๐Ÿ“ํ›„๊ธฐ

์ฒ˜์Œ์—๋Š” all๋กœ  graph[:N//2][:N//2]๊ฐ€ ๋ชจ๋‘ 1์ธ์ง€ 0์ธ์ง€๋กœ ํ™•์ธํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ด๋ดค๋Š”๋ฐ ์ด ๋ฐฉ๋ฒ•์€ ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™๋‹ค. all์ด๋‚˜ any๋Š” ์–ด๋–จ ๋•Œ ์“ฐ๋Š” ๊ฒŒ ์ข‹์€์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค...

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Coding Test > Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 1504. ํŠน์ •ํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ/Python - Gold4  (0) 2025.08.12
[๋ฐฑ์ค€] 9655. ๋Œ ๊ฒŒ์ž„/Python - Silver5  (2) 2025.08.11
[๋ฐฑ์ค€] 11404. ํ”Œ๋กœ์ด๋“œ/Python - Gold4  (0) 2025.08.07
[๋ฐฑ์ค€] 14500. ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ/Python - Gold4  (2) 2025.08.06
[๋ฐฑ์ค€] 14502. ์—ฐ๊ตฌ์†Œ/Python - Gold4  (0) 2025.08.03
'Coding Test/Algorithms' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 1504. ํŠน์ •ํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ/Python - Gold4
  • [๋ฐฑ์ค€] 9655. ๋Œ ๊ฒŒ์ž„/Python - Silver5
  • [๋ฐฑ์ค€] 11404. ํ”Œ๋กœ์ด๋“œ/Python - Gold4
  • [๋ฐฑ์ค€] 14500. ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ/Python - Gold4
The Engineer, Lucy
The Engineer, Lucy
  • The Engineer, Lucy
    Growing up for My Future๐Ÿ’•
    The Engineer, Lucy
    • Instagram
    • GitHub
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (178)
      • Linux (26)
      • Infra (9)
      • Cloud (25)
        • AWS (2)
        • GCP (3)
        • Docker (4)
        • Kubernetes (14)
        • IaC (2)
      • NGINX (1)
      • DevOps (3)
      • Computer Science (17)
        • Data Structure (0)
        • Algorithms (1)
        • Operating System (3)
        • Network (11)
        • Database System (2)
      • Coding Test (92)
        • Algorithms (84)
        • SQL (7)
      • ETC (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๊ณต์ง€์‚ฌํ•ญ

  • ๋งํฌ

    • Lucy's Instagram
    • Lucy's GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    K8s
    ๋„์ปค
    Shell
    ์˜ค๋ธ”์™„
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    Kubernetes
    network
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ๋ฆฌ๋ˆ…์Šค
    ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰
    programmers
    bfs
    cs ๊ธฐ์ดˆ ์ง€์‹ ์ •๋ฆฌ
    ๋„คํŠธ์›Œํฌ
    ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ์ž๋ฐ”
    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณต๋ถ€
    ์…ธ ์Šคํฌ๋ฆฝํŠธ
    Linux
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰
    ์‰˜ ์Šคํฌ๋ฆฝํŠธ
    Shell Script
    Baekjoon
    docker
    Java
    dfs
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ
    ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹
    ๋ฐฑ์ค€
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
The Engineer, Lucy
[๋ฐฑ์ค€] 2630. ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ/Python - Silver2
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”