<문제 링크>
https://www.acmicpc.net/problem/1018
<헤맨 과정>
먼저 직사각형의 크기를 입력받고
입력받은 크기만큼의 char형 2차원 배열을 만들어주었다.
그리고 그 안에 W또는 B을 2차원 크기만큼 입력받게 작성했다.
배열에서 입력받는 과정에 Scanner는 char형으로 받는 메소드가 따로 없어서
한 줄(한 행) 씩 String형으로 입력받고 그것을 2차원 배열의 안쪽 배열에 하나씩 대입하도록 만들어주었다.
그렇게 완성된 직사각형에서 자른 후 색을 바꿔서 8x8의 체스판을 만들도록 할 때 최소로 색을 바꾸는 경우를 찾아주기 위해서
배열안에서 만들 수 있는 모든 8x8을 조사하는 코드를 짜고 그 안에서 1행1열의 색이 B일 경우와 W일 경우로 나눠주었다.
그리고 B경우와 W경우에서 몇 개의 색깔을 바꿔야하는지 각각 카운트 해주고
한개의 체스판을 다 확인하면 더 작은 값을 최솟값을 구할 변수에 넣어주었다.
그리고 계속 이 과정을 반복하면서 이전의 최솟값, B경우, W경우 중 더 작은 값을 찾아주었다.
논리적으로는 정상적으로 잘 동작하는 코드를 짰는데
백준에서 돌려보니까 런타임 에러가 났다..
그래서 고민하다가 나중에 풀어야지 하고 두고 어제 다시 잡아봤다.
오랜만에 푹자고 맑은 정신에서 코드를 보니까
바로바로 틀린 부분이 눈에 보였다.
한시간씩 이거만 봐도 안보이더니 나중에 보니까 바로 에러를 찾아내다니...
직사각형의 크기를 입력받는 순서를 잘못 알고 있었고,
체스판의 한 줄이 바뀔 때마다 B와 W가 바뀌는 것을 안짰다.
이것만 고치니까 바로 맞았습니다! 가 떴다.
전에 암만해도 못 찾던 에러도 나중에 찾을 수도 있다는 경험을 했다.
코딩할 때 아무리 안 풀려도 포기하지 말자..!
<내 최종 코드>
밑의 글의 가장 하단에 백준과 깃헙을 연동할 수 있 유용한 정보를 작성해놨습니다. 도움이 되길 바랍니다.❤️
2022.05.25 - [JAVA/해결한 문제] - baekjoon-1085번 "직사각형 탈출" 회고
'JAVA > 해결한 문제' 카테고리의 다른 글
소수(prime number)인지 구하는 함수 구현하기 (3) | 2022.06.13 |
---|---|
CC(Coin Change, 동전교환) 알고리즘 구현하기 (0) | 2022.06.06 |
탐욕 알고리즘(Greed Algorithm) - 짐을 박스에 담는 최선의 방법 (0) | 2022.06.02 |
baekjoon-1085번 "직사각형 탈출" 회고 (0) | 2022.05.25 |
문자열을 hashMap 타입으로 변환하기 (2) | 2022.05.18 |