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.