N° Studio logoHarutoStudio
사용 가이드글Premium
대시보드
사용 가이드글Premium
블로그/APCS Oct 2018 - f637
  • #apcs

APCS Oct 2018 - f637

BlackInkBlackInk2025년 6월 19일 오전 08:00

APCS Oct 2018 - f637 Q3 [Python]

문제 설명:

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

image

압축된 이미지는 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로 번역했습니다. 의미나 표현에 차이가 있을 수 있으니 정확한 내용은 번체 중국어 원문을 기준으로 확인해 주세요.

HarutoStudio LogoHarutoStudio

HarutoStudio © 2023 - 2026

링크

  • 문서
  • 대시보드
  • 이용약관
  • 개인정보 처리방침
  • 환불 정책
  • 봇 상태

커뮤니티

  • Discord
  • Github
  • Instagram
  • top.gg

후원하기

  • Premium 요금제
  • 파트너