반응형

분할 정복 2

[백준 1992] 쿼드트리 (C++)

문제 백준 1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 풀이 입력이 빈칸으로 구분되지 않기 때문에 string 형식으로 받은 뒤 int 형식으로 map에 저장시켜 줍니다. 루프를 돌면서 색깔이 같지 않다면 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 37 38 39 40 41 42 43 44 45 4..

알고리즘/백준 2021.09.09

[백준 2630] 색종이 만들기 (C++)

문제 백준 2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 풀이 정해진 크기 만큼의 배열을 돈 뒤, 색깔이 모두 같으면 해당 색깔 개수를 늘려주고 색깔이 다르면 재귀를 통해 분할정복합니다. fun함수는 시작지점 sx, sy와 크기 size를 받습니다. map[sy][sx]에 따라 색깔을 나눈 뒤, 배열을 size만큼 점검합니다. 해당 배열의 색깔이 모두 같으면 해당색깔++을 해줍니다. 다르면 4개 영역으로 분할합니다. 각각 좌상 / 우상 / 좌하 / 우하 입니다. 소스 코드..

알고리즘/백준 2021.09.05
반응형