[Baekjoon/๐ŸฅˆSilverโ…ข] 2630: ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ

1 ๋ถ„ ์†Œ์š”

Intro

๋ฌธ์ œ์‚ฌ์ง„ ๋ฌธ์ œ์‚ฌ์ง„2

  • ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ ์ƒ‰์ข…์ด๋ฅผ ์ž๋ฅด๋Š” ๋ฐฉ์‹์ด๋‹ค!

    • ์ž๋ฅด๊ณ ์ž ํ•˜๋Š” ์ƒ‰์ข…์ด๊ฐ€ ํ•˜๋‚˜์˜ ์ƒ‰์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์ง€ ์•Š๋‹ค๋ฉด 4๋“ฑ๋ถ„ํ•œ๋‹ค.

    • ์ž˜๋ผ์ง„ ์ข…์ด๊ฐ€ ๋ชจ๋‘ ํฐ์ƒ‰ ํ˜น์€ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๊ฑฐ๋‚˜, ํ•˜๋‚˜์˜ ์ •์‚ฌ๊ฐํ˜• ์นธ์ด ๋˜์–ด ๋” ์ด์ƒ ์ž๋ฅผ ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

๐Ÿ‘ฉ ๋ฌธ์ œ์—์„œ ์ œ์‹œํ•œ ์˜ˆ์‹œ์˜ ์ƒ‰์ข…์ด๋ฅผ ์œ„ ๋ฐฉ์‹๋Œ€๋กœ ์ž๋ฅธ๋‹ค๋ฉด ์ตœ์ข…์ ์œผ๋กœ 9๊ฐœ์˜ ํฐ์ƒ‰ ์ข…์ด์™€ 7๊ฐœ์˜ ํŒŒ๋ž€ ์ข…์ด๋กœ ๋‚˜๋‰˜์–ด์ง„๋‹ค.

๋ฌธ์ œ์˜ ์˜ˆ์‹œ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์˜ˆ์‹œ

์ ‘๊ทผ ๋ฐฉ๋ฒ•๐Ÿ™‹โ€โ™€๏ธ

๐Ÿ‘ฉ ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฌธ์ œ์— ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•ด์•ผ ํ• ๊นŒ?

์ƒ‰์ข…์ด๋ฅผ ์ž๋ฅด๋Š” ๊ณผ์ •์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณธ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฌธ์ œ๋ฅผ ์ผ๋ฐ˜ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ฃผ์–ด์ง„ ์ข…์ด์— ๋‘ ์ƒ‰์ด ๋ชจ๋‘ ์กด์žฌํ•œ๋‹ค๋ฉด 4๋“ฑ๋ถ„์„ ์ง„ํ–‰ํ•œ๋‹ค.
  • ์ฃผ์–ด์ง„ ์ข…์ด์— ํ•˜๋‚˜์˜ ์ƒ‰๋งŒ ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ์ƒ‰์˜ ์ข…์ด ์ˆ˜๋ฅผ ํ•˜๋‚˜ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

  • ๐Ÿ‘ฉ ๋งŒ์•ฝ 4๋“ฑ๋ถ„์„ ์ง„ํ–‰ํ–ˆ๋‹ค๋ฉด ๋‚˜๋ˆ„์–ด์ง„ ๊ฐ ์ข…์ด์— ๋Œ€ํ•ด์„œ๋„ ์œ„ ๋‘ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.
    • 4๋“ฑ๋ถ„ ์‹œ, ์ •์‚ฌ๊ฐํ˜•์˜ ์‹œ์ž‘์ ์˜ ์ธ๋ฑ์Šค(x,y)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žฌ๊ท€๋ฅผ ํ˜ธ์ถœํ•ด ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ์žฌ๊ท€


๊ฒฐ๋ก ์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ๋ถ„ํ• ์ •๋ณต์„ ํ†ตํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค!

ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋“ค๋กœ ๋‚˜๋ˆ  ๊ทธ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ ํ•˜๋‚˜์˜ ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค!!


๐Ÿ‘ฉ n= 4์ผ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ๊ทธ ์˜ˆ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ์‚ดํŽด๋ณด์ž!

n=4


Algoritm๐Ÿ‘ฉโ€๐Ÿ’ป

์œ„ ๋ฐฉ์‹์„ ์ ์šฉํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž‘์„ฑํ•ด๋ณด์ž!

#21.10.18
import sys

# ํฐ์ƒ‰, ํŒŒ๋ž€์ƒ‰ ์ƒ‰์ข…์ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜
def getCount(x, y, num):
  global colors, count
  # ๊ธฐ์ค€์ด ๋˜๋Š” ์ฒซ ์‹œ์ž‘์ ์˜ ์ƒ‰๊น”
  chk = colors[x][y]
  for i in range(x, x+num):
    for j in range(y, y+num):

      # ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅธ ์ƒ‰์ด ์กด์žฌํ•  ๊ฒฝ์šฐ, 4๋“ฑ๋ถ„ ์ง„ํ–‰!
      if(chk != colors[i][j]):
        size = num//2
        getCount(x, y, size)
        getCount(x+size, y, size)
        getCount(x, y+size, size)
        getCount(x+size, y+size, size)
        return

  # ๋ชจ๋‘ ๊ฐ™์€ ์ƒ‰๊น”์ธ ๊ฒฝ์šฐ      
  count[chk] += 1
  return

n = int(input())
colors = []
count = [0, 0]
for i in range(n):
  colors.append(list(map(int, sys.stdin.readline().rstrip().split())))
getCount(0, 0, n)
print(count[0])
print(count[1])

์ œ์ถœ๊ฒฐ๊ณผ

์œ„ ๊ณผ์ •์„ ์ •ํ™•ํžˆ ์ดํ•ดํ–ˆ๋‹ค๋ฉด ์ฝ”๋“œ๋Š” ์•„๋งˆ ๋ฌด์ฒ™ ์‰ฝ๊ฒŒ ์ดํ•ด๋  ๊ฒƒ์ด๋‹ค!!

๋”ฐ๋ผ์„œ ๋ณ„๋„์˜ ์„ค๋ช…์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ฒ ๋‹ค.


๐Ÿ‘ฉ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๋ฉด์„œ ๋ถ„ํ• ์ •๋ณต ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์กฐ๊ธˆ ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋Š๋ผ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ฅผ ๋” ํ’€์–ด๋ณด๋ฉฐ ๊ทธ ๋ฐฉ์‹์„ ์ •ํ™•ํžˆ ์ตํ˜€์•ผ๊ฒ ๋‹ค!

๊ทธ๋Ÿผ ์—ฌ๊ธฐ์„œ ์ด๋งŒ ๋งˆ๋ฌด๋ฆฌํ•˜๋„๋ก ํ•œ๋‹ค!

๋! ~(ห˜โ–พห˜~)

๐Ÿ“ƒ์ฐธ๊ณ 

  • https://happylsm76.tistory.com/entry/%EB%B0%B1%EC%A4%80-2630%EB%B2%88%EC%83%89%EC%A2%85%EC%9D%B4-%EB%A7%8C%EB%93%A4%EA%B8%B0-with-Python
  • https://hyo-ue4study.tistory.com/235

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ