반응형
문제
https://www.acmicpc.net/problem/1992
1992번: 쿼드트리
첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또
www.acmicpc.net
풀이
분할 정복 알고리즘을 사용하여 풀이할 수 있는 문제입니다.
압축된 문자열을 보면, 분할될 때, 괄호를 열고 분할된 문자열이 압축이 끝나면 닫아줍니다.
주어진 영상이 모두 0이나 1인지 확인하고, 0이라면 문자열에 0, 1이라면 1을 써주고
모두 0이나 1이 아니라면, 한 변을 2/n 으로 4등분하여 재귀함수로 다시 검사해줍시다.
4등분을 하게될 때가 분할될 때이므로 이때 괄호를 열어줍시다.
4등분한 영상을 전부 압축했다면 괄호를 닫아줍시다.
소스코드
후기
재귀적으로 자신을 호출하면서 그 연산의 단위를 조금씩 줄어가는 방식인 분할 정복 기법을 사용하여 풀이할 수 있는 문제입니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 1629 곱셈 (Swift) (0) | 2023.04.11 |
---|---|
[BOJ] 백준 1780 종이의 개수 (Swift) (0) | 2023.04.11 |
[BOJ] 백준 2630 색종이 만들기 (Swift) (0) | 2023.04.11 |
[BOJ] 백준 13305 주유소 (Swift) (0) | 2023.04.10 |
[BOJ] 백준 1541 잃어버린 괄호 (Swift) (0) | 2023.04.10 |