APCS Oct 2018 - f637 Q3 [Python]
문제 설명:
DF-express(깊이 우선 이미지 표현)는 압축률이 높은 쿼드트리 표현 방식입니다. 주로 흑백 이진 이미지를 위해 설계되었지만 비트 평면이나 3D 표현을 통해 회색조 이미지도 압축할 수 있습니다. 이 문제의 모든 픽셀은 검은색 또는 흰색이며 중간 회색은 없습니다. 이미지 크기는 n × n이고 n은 2의 거듭제곱입니다. 즉, 음이 아닌 정수 k에 대해 n = 2^k입니다. 재귀적으로 모든 픽셀이 흰색이면 0, 검은색이면 1로 표현합니다. 그렇지 않으면 한 변의 길이가 n/2인 정사각형 네 개로 나누고, 먼저 2를 쓴 뒤 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 영역의 표현을 순서대로 연결합니다.

압축된 이미지는 0, 1, 2로 이루어진 문자열 S로 표현됩니다. S와 이미지 크기 n이 주어질 때 원본 이미지에서 값이 1인 픽셀 수를 구하세요.
expression = input()
pixel = int(input())
index = [0]
pre_pixel = [pixel]
total = 0
for i in range(len(expression)):
while index[-1] == 4:
index.pop()
pre_pixel.pop()
index[-1] += 1
if expression[i] == "0":
index[-1] += 1
elif expression[i] == "1":
total += pre_pixel[-1] * pre_pixel[-1]
index[-1] += 1
elif expression[i] == "2":
index.append(0)
pre_pixel.append(pre_pixel[-1] // 2)
print(total)
핵심 개념:
- NaN
- [✔️] 필요하면 코드를 그대로 사용해도 됩니다.
- [✔️] 공유할 때 출처를 표시해 주세요.

이 글은 번체 중국어 원문을 AI로 번역했습니다. 의미나 표현에 차이가 있을 수 있으니 정확한 내용은 번체 중국어 원문을 기준으로 확인해 주세요.