kkssry   4년 전

코드 간소화 해볼려고 최대한 간소화 했습니다.

9개 덩어리를 x , y값의 좌표 처럼 생각하여서 

예를들어, 9가 입력될시 

(0,0) (0,1) (0,2)

(1,0) (1,1) (1,2)

(2,0) (2,1) (2,2) 

이렇게 구역화하여 입력받은 숫자 총배열에서 찾는 식으로 구성하였습니다.

어떤 반례때문에 틀린건지 궁금합니다ㅠ

djm03178   4년 전

쪼개진 9개의 칸 각각이 3x3이 아니라 더 크다면 그 내부에서도 다시 쪼개봐야 하는데 그런 과정이 보이지 않네요.

kkssry   4년 전

callFunc함수를 호출하여 실행되고 있습니다.

(i , j) = i : 세로 , j : 가로일때

(0,1)일이면 i는 0이상 3미만 , j는 3이상 6미만까지 전체 배열에서 돌면서 정확히 9개를 탐색합니다.

이후 중복값을 줄여 1개이면 그값을 넘기고 1개가아니면 9개값을 넘김니다. 

kkssry   4년 전

제가 혹시 놓치고 있는 부분이 있나요 9개씩 탐색해서 모두 같은 숫자면 1개로 줄이고 그게 아니면 1조각씩 불할하는걸로 이해했는데

9개씩 탐색하는게 아닌가요?

djm03178   4년 전

반대로 말씀드렸어야겠네요. 쪼개지 않아도 되는 부분은 쪼개지 않아야 되는데 전부 쪼개서 보고 있는 것 같습니다.

예를 들어 아래 예시는 9x9의 0으로 이루어진 종이를 오른쪽 아래만 빼고 8개 붙이고, 오른쪽 아래는 다시 3x3짜리 0으로 이루어진 종이를 오른쪽 아래만 빼고 8개 붙이고, 남은 3x3 부분에서 1x1짜리 0을 8개 붙이고 1x1짜리 1을 하나 붙여서 총 0이 24장, 1이 1장 필요한데 0이 88장 필요한 걸로 출력합니다.

kkssry   4년 전

감사합니다! 제가 문제를 잘못이해 하고있었네요.

댓글을 작성하려면 로그인해야 합니다.