728x90
문제
https://www.acmicpc.net/problem/1018
1018번: 체스판 다시 칠하기
첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.
www.acmicpc.net
# 문제의 핵심은 체스판 시작의 색깔이 흰색인 경우와 검은색인 경우이다.
# 체스판은 흰색과 검은색 번갈아가며 체크무늬를 이뤄야 한다.
# 보드판을 잘라서, 체크무늬가 되도록 색을 고치는 최솟값을 찾는 것이다.
정답
- i와 j의 인덱스로 접근하면 규칙적인 모습이 보인다.
(0,0) 짝수 | (1,0) 홀수 | (2,0) 짝수 |
(0,1) 홀수 | (1,1) 짝수 | (2,1) 홀수 |
(0,2) 짝수 | (1,2) 홀수 | (2,2) 짝수 |
- 핵심은 첫 if문에서 인덱스 합이 짝수이면 시작점과 같은 색이어야 하는데, 다를 경우 고쳐야 할 색에 카운트해준다
- else에서는 인덱스 합이 홀수이면 시작점과 다른 색이어야 하는데, 같을 경우 고쳐야 할 색에 카운트해준다.
* 코드가 필요하신 분은 아래 github 주소를 참고해주시고, 틀린 점이나 궁금하신 점이 있으신 분들은 댓글을 남겨주세요!!
GitHub - JunSeokCheon/Codingtest: python for codingtest
python for codingtest. Contribute to JunSeokCheon/Codingtest development by creating an account on GitHub.
github.com
'알고리즘 > baekjoon' 카테고리의 다른 글
[알고리즘/baekjoon] 4949_균형잡힌 세상(python) (0) | 2021.10.24 |
---|---|
[알고리즘/baekjoon] 1920_수 찾기(python) (0) | 2021.10.22 |
[알고리즘/baekjoon] 10989_수 정렬하기3(python) (0) | 2021.10.20 |
[알고리즘/baekjoon] 2108_통계학(python) (0) | 2021.10.20 |
[알고리즘/baekjoon] 7568_덩치(python) (0) | 2021.10.20 |
댓글