Algorithm Problem/Python

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ฟผ๋“œ์••์ถ• ํ›„ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ (์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)

deo2kim 2020. 10. 24. 08:37
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

์••์ถ•๋ฌธ์ œ ๋ฐฑ์ค€์—์„œ๋„ ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณธ์ ์ด ์žˆ๋‹ค. 

๋ฆฌ์ŠคํŠธ๋ฅผ ์‹ค์ œ๋กœ ์ž๋ฅด์ง€ ๋ง๊ณ  ๋‚˜๋‰˜๋Š” ์ธ๋ฑ์Šค๋งŒ ๊ตฌํ•ด์„œ ํ•ด๊ฒฐํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•  ๋•Œ๋Š” ๋„ค๋ชจ์˜ ์‹œ์ž‘์ ์˜ ์œ„์น˜๋งŒ ๊ตฌํ•œ๋‹ค. ๊ฑฐ๊ธฐ์— + ๋„ค๋ชจ์˜ ๊ธธ์ด๋งŒํผ ํ•ด์ฃผ๋ฉด ๋„ค๋ชจ๋ฅผ ์™„์„ฑ์‹œํ‚ด

์‹œ์ž‘์ ์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋ฉด ์œ„์˜ ๊ฒฝ์šฐ๋Š” 0, 0 ๊ทธ๋ฆฌ๊ณ  ํฌ๊ธฐ๋Š” 8์ด๋‹ค.

๋‹ค์Œ 4๊ฐ€์ง€๋Š”

  • 0, 0, 4
  • 0, 4, 4
  • 4, 0, 4
  • 4, 4, 4

๋‹ค์Œ ๋„ค๋ชจ๋Š” ํฌ๊ธฐ๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๊ณ  x์— ๋”ํ•˜๊ฑฐ๋‚˜ y์— ๋”ํ•˜๊ฑฐ๋‚˜ x์™€ y ๋‘˜๋‹ค ๋”ํ•ด์„œ ์‹œ์ž‘๊ฐ’์„ ๋งŒ๋“ ๋‹ค.

 

๋‹ค์Œ์€ ์ด ๋„ค๋ชจ๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ์ˆซ์ž์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ

๋„ค๋ชจ์ค‘ ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์žก๊ณ  ๋„ค๋ชจ์•ˆ์˜ ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•ด๊ฐ€๋ฉด์„œ ์ดˆ๊ธฐ๊ฐ’๊ณผ ๋‹ค๋ฅธ๊ฒŒ ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด ์••์ถ•ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋˜ ๊ทธ ๋„ค๋ชจ๋ฅผ ์ž˜๋ผ์ค€๋‹ค!

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

def solution(arr):
    answer = [0, 0]
    N = len(arr)

    def comp(x, y, n):
        init = arr[x][y]  # ํ•ด๋‹น ๋„ค๋ชจ๊ฐ’์ค‘ ํ•˜๋‚˜ # ๋ชจ๋‘ ๊ฐ™์•„์•ผ ํ†ต๊ณผ์ž„
        for i in range(x, x + n):
            for j in range(y, y + n):
                if arr[i][j] != init:  # ํ•œ๋ฒˆ์ด๋ผ๋„ ๋‹ค๋ฅด๋ฉด ๊ทธ ๋„ค๋ชจ๋Š” ์••์ถ•๋ถˆ๊ฐ€
                    nn = n // 2
                    comp(x, y, nn)
                    comp(x, y + nn, nn)
                    comp(x + nn, y, nn)
                    comp(x + nn, y + nn, nn)
                    return

        # ๋ฌด์‚ฌํžˆ ๋‹ค ํ†ต๊ณผํ–ˆ๋‹ค๋ฉด ์••์ถ•๊ฐ€๋Šฅ
        answer[init] += 1

    comp(0, 0, N)
    return answer

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

๋งํฌ: https://programmers.co.kr/learn/courses/30/lessons/68936?language=python3

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ฟผ๋“œ์••์ถ• ํ›„ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ

[[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15]

programmers.co.kr

 

๋ฐ˜์‘ํ˜•