Post

Programmers_쿼드압축 후 개수 세기

프로그래머스 -쿼드압축 후 개수 세기 문제 입니다.

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/68936


2. 분류 및 난이도

Programmers 문제입니다.
월간 코드 챌린지 시즌 1 문제입니다. Level 2난이도의 문제입니다.


3. 생각한 것들(문제 접근 방법)

  • 쿼드 압축은 대표적인 재귀문제 중 하나로 방식을 이해하고 있으면 어렵지 않게 해결할 수 있습니다.
  • 저는 방식을 잘 몰라서 참고하였습니다.

4. 접근 방법을 적용한 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
one = 0
zero = 0
def solve(curX, curY,length,arr):
    global zero,one
    check = True

    ch = arr[curX][curY]
    
    if length == 1 : 
        check = True
    else : 
        for i in range(length):
            for j in range(length):
                if ch != arr[curX+i][curY+j] : 
                    check = False
                    break
                if not check : 
                    break
    if check : 
        if ch == 0 : 
            zero += 1
        else : 
            one +=1
    else : 
        templ = int(length/2)
        solve(curX,curY,templ,arr)
        solve(curX,curY + templ,templ, arr)
        solve(curX + templ, curY ,templ,arr)
        solve(curX + templ, curY + templ ,templ,arr)

def solution(arr):
    answer = []
    solve(0,0,len(arr),arr)
    answer.append(zero)
    answer.append(one)
    return answer

5. 결과

필요시. python로 짜드리겠습니다.

This post is licensed under CC BY 4.0 by the author.