[수업]Bitmap

문제

screen captures

screen captures


풀이

BtoD 는 압축이고, DtoB는 푸는것인데, 이 두 함수를 만들어야 한다.

손으로 풀어보고, 원리를 이해할것.

<1. B to D 손으로 풀어본 것>

입력

B 3 4 -> 형식과 치수제공
001000011011 -> 비트맵

출력

D 3 4
D0D1001D101

- 입력 B

B
0 0 1 0
0 0 0 1
1 0 1 1

- 출력과정 D

D
0 0 1 0
0 0 0 1
1 0 1 1
=> D

1번째 분기

0 0 1 0
0 0 0 1

1 0 1 1
=> 0 D

2번째 분기

​ 1 0

​ 0 1

1 0 1 1
=> 1 0 0 1 D

3번째 분기

1 0 1 1
=> 1 0 1

결론 : BtoD = D0D1001D101

<2. D to B 손으로 풀어본 것>

입력 :
D 2 3
DD10111

출력 :
1 0 1 1 1 1

0 0 0
0 0 0

- 입력 D

D 1번
0 0 0

0 0 0

D 2번
0 0 0

0 0 0

삽입
1 0 1

1 1 1

- 출력과정 B

결론 : 1 0 1 1 1 1

따라서 재귀를 왼쪽 상단, 오른쪽 상단, 왼쪽 하단, 오른쪽 하단 으로 4부분으로 나눠서 해주는 형식으로 코드를 작성해야 한다.

  • 위 과정만 이해한다면 충분히 구현은 어렵지 않다.(4부분 재귀로)

댓글남기기