안녕하세요 onjo님! (저 블로그 친구에요 ㅋㅋ)
각 사탕마다 인접해있는 사탕끼리 위치를 바꾸고 바뀐 곳에서만 탐색을 했더니 테스트 케이스를 다 통과하더라구요. 예를 들어서 (i,j)에 있는 사탕을 옆에 인접해있는 사탕과
위치를 바꾸었을때는 i행, j열,그리고 (j+1)번째 열만 탐색하고 최댓값을 갱신했구요, 아래에 인접해있는 사탕과 위치를 바꾸었을때는 i행, (i+1)행 그리고 j열만 탐색해서 최댓값을 갱신했어요. 제 C++ 소스 첨부해볼게요:
onjo0127 8년 전
문제에서
"이제, 모두 같은 색으로 이루어져 있는 가장 긴 연속 부분(행 또는 열)을 고른 다음 그 사탕을 모두 먹는다."
이 부분이 명확하지 않습니다.
사탕을 교환한 다음 바뀐 두 칸의 행,열에서만 탐색해야 하는지, 아니면 모든 행,열을 탐색하는 것인지 나와 있지 않습니다.
그리고 아예 사탕을 바꿀 수 없을 때
예)
3
CCC
CCC
CCC
이럴 때는 서로 다른 색이 없어서 바꿀 수가 없는데 최대값은 어떻게 처리하나요? 이 상태에서 바꾸지 않고 먹을 수 있나요?
아래는 제 소스코드입니다.
완전탐색했습니다.
이 문제 맞으신 분들은 어떻게 풀으셨는지 궁금합니다.
도와주세요!