-
https://www.acmicpc.net/problem/1780
1780번: 종이의 개수
N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수
www.acmicpc.net
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%201780
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
해당 문제는 2차원 배열이 주어졌을 때 배열의 데이터가 모두 같인지 확인하고
같으면 해당 숫자를 그렇지 않으면 9개의 똑같은 크기로 나눠서
처음 동작을 반복하는 문제다.
해당 문제는 재귀를 통해 해결했으며,
처음 시작 좌표와 배열 크기를 전달해 주고
반복문을 틀면서 배열의 처음 데이터와 다음부터 들어오는 데이터가 같은지 비교해 준다
다르면 해당 부분은 나눠서 다시 해야 하기 때문
이후 만약 모두 같으면 배열에 젤 처음 데이터를 통해 카운트를 증가시키고
그렇지 않으면 총 9개로 분할해서 재귀를 실시한다.
이때 배열 크기가 9이면 시작점이
0,0 0,3, 0,6 3,0 3,3 3,6 6,0 6,3 6,6에 맞춰 진행하면 된다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 11724 연결 요소의 개수 JAVA (0) 2021.11.10 Baekjoon 1927 최소 힙 JAVA (0) 2021.11.10 Baekjoon 1620 나는야 포켓몬 마스터 이다솜 JAVA (0) 2021.11.10 Baekjoon 17829 222-폴링 JAVA (0) 2021.11.09 Baekjoon 16398 행성 연결 JAVA (0) 2021.11.09 댓글