본문 바로가기

재귀2

[백준] 1992 쿼드트리 c++ https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 예전에 풀어봤던 분할 문제하고 비슷해서 금방 풀었다. 1.n*n 크기의 사각형을 검사한다. 2.전부 0이거나 1이면 문자열에 0이나 1을 추가해준다. 3. 아니면 문자열에 (을 추가하고 n/2*n/2 크기의 사각형 4개로 분할해서 사각형을 검사한다. 4. 분할한 사각형을 다 검사하면 )을 문자열에 추가한다. *입력이 문자열로 들어오기 때문에 잘라서 int로 바꿔서 배열에 넣어줘야한다... 2022. 5. 14.
[백준] 2630 색종이 만들기 c++ 옆에 종이랑 비교하다가 다르면 n을 2로 나누고 재귀로 풀자 라고 생각했었고 두번 헤맸다. 첫번째는 n*n블록 안에 하나라도 다른 색깔이 있는지 없는지가 중요한거지 옆에 종이랑 다른것이 중요한 것이 아니었다. 그래서 이중 for 문을 통해 옆에 종이랑 비교하려다 보니까 이미 자른 종이를 또 잘랐다^^ 두번째는 1,1 부터 검사하고 1,3 -> 3,1 -> 3,3 순으로 검사하고 싶었는데. 재귀를 어떻게 해야할지 몰라서 헤맸다. 그냥 함수 호출을 4번하면 됐었던 것..^^ 최종 풀이 : y,x 부터 가로, 세로 크기가 n인 정사각형 범위에서 1이면 cnt를 증가 시킨다. cnt==0이면 전부 0만 들어가 있는 것이므로 white++ cnt==n*n이면 전부 1만 들어가 있는 것이므로 blue++ 둘 다 아.. 2022. 3. 10.