<문제 링크>

 

https://www.acmicpc.net/problem/1018

 

1018번: 체스판 다시 칠하기

첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.

www.acmicpc.net

 

 

 

<헤맨 과정>

더보기

먼저 직사각형의 크기를 입력받고

입력받은 크기만큼의 char형 2차원 배열을 만들어주었다.

그리고 그 안에 W또는 B을 2차원 크기만큼 입력받게 작성했다.

배열에서 입력받는 과정에 Scanner는 char형으로 받는 메소드가 따로 없어서

한 줄(한 행) 씩 String형으로 입력받고 그것을 2차원 배열의 안쪽 배열에 하나씩 대입하도록 만들어주었다.

그렇게 완성된 직사각형에서 자른 후 색을 바꿔서 8x8의 체스판을 만들도록 할 때 최소로 색을 바꾸는 경우를 찾아주기 위해서

배열안에서 만들 수 있는 모든 8x8을 조사하는 코드를 짜고 그 안에서 1행1열의 색이  B일 경우와 W일 경우로 나눠주었다.

그리고 B경우와 W경우에서 몇 개의 색깔을 바꿔야하는지 각각 카운트 해주고

한개의 체스판을 다 확인하면 더 작은 값을 최솟값을 구할 변수에 넣어주었다.

그리고 계속 이 과정을 반복하면서 이전의 최솟값, B경우, W경우 중 더 작은 값을 찾아주었다.

 

논리적으로는 정상적으로 잘 동작하는 코드를 짰는데

백준에서 돌려보니까 런타임 에러가 났다..

그래서 고민하다가 나중에 풀어야지 하고 두고 어제 다시 잡아봤다.

오랜만에 푹자고 맑은 정신에서 코드를 보니까

바로바로 틀린 부분이 눈에 보였다.

한시간씩 이거만 봐도 안보이더니 나중에 보니까 바로 에러를 찾아내다니...

직사각형의 크기를 입력받는 순서를 잘못 알고 있었고,

체스판의 한 줄이 바뀔 때마다 B와 W가 바뀌는 것을 안짰다.

이것만 고치니까 바로 맞았습니다! 가 떴다.

 

전에 암만해도 못 찾던 에러도 나중에 찾을 수도 있다는 경험을 했다.

코딩할 때 아무리 안 풀려도 포기하지 말자..!

 

 

 

 

<내 최종 코드>

 

https://github.com/WiseJade/Baekjoon-Auto-Push/blob/main/%EB%B0%B1%EC%A4%80/Silver/1018.%E2%80%85%EC%B2%B4%EC%8A%A4%ED%8C%90%E2%80%85%EB%8B%A4%EC%8B%9C%E2%80%85%EC%B9%A0%ED%95%98%EA%B8%B0/%EC%B2%B4%EC%8A%A4%ED%8C%90%E2%80%85%EB%8B%A4%EC%8B%9C%E2%80%85%EC%B9%A0%ED%95%98%EA%B8%B0.java

 

GitHub - WiseJade/Baekjoon-Auto-Push: This is a auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https:

This is a auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - GitHub - WiseJade/Baekjoon-Auto-Push: This is a auto push reposito...

github.com

 

 

 

밑의 글의 가장 하단에 백준과 깃헙을 연동할 수 있 유용한 정보를 작성해놨습니다. 도움이 되길 바랍니다.❤️

 

2022.05.25 - [JAVA/해결한 문제] - baekjoon-1085번 "직사각형 탈출" 회고

 

baekjoon-1085번 "직사각형 탈출" 회고

코딩 독학할 때 백준 가입해놨다가 난이도가 있는 것 같아서 한두문제 풀고 손을 안댔었다. 그러다가 오늘 알고리즘시간에 너무 헤맸어서 알고리즘 연습의 중요성을 느꼈다ㅠㅠ 백준으로 알고

wjcodding.tistory.com