RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
문제 KOI00174

그리드 게임

설명

태양이는 아래와 같이 M×N 그리드 위에 놓여있는 MN개의 흰색과 검은색 돌들을 가지고 게임을 시작한다.

임의의 돌 X에 대해서, X에 상, 하, 좌, 우로 인접한 4개의 돌들을 X의 이웃이라고 한다. 태양이는 위의 돌들 중에서 하나를 선택해서 돌의 색깔을 바꿀 수 있다. 그러면 이 돌의 이웃이고 같은 색을 가지는 돌들도 또한 새로운 색으로 바뀐다. 계속해서 반복적으로 색이 바뀌는 돌의 이웃들 또한 같은 색을 가지는 경우에 색이 바뀐다.

예를 들어, 위 그림에서 돌 A의 색을 흰색으로 바꾸면 ‘ㄷ’자 모양의 검은색 돌들이 흰색으로 바뀌어서 다음과 같이 된다.

다음으로 돌 C를 흰색으로 바꾸면 다음 그림과 같이 바뀐다.

그리고 돌 F를 흰색으로 바꾸고, 마지막으로 돌 E를 흰색으로 바꾸면 모든 돌들이 흰색이 된다. 따라서 모두 네 번의 색 바꾸기로 모든 돌들을 흰색으로 바꾸었다.

하지만 두 번만의 색 바꾸기로 모든 돌들을 같은 색으로 바꿀 수 있다. 먼저 돌 B를 검은색으로 바꾸면 다음 그림과 같이 된다.

그러면 돌 A를 흰색으로 바꾸어서 모든 돌들을 흰색으로 바꾸거나, 돌 D를 검은색으로 바꾸어서 모든 돌들을 검은색으로 바꿀 수 있다. 따라서 두 번만의 색 바꾸기로 모든 돌들을 같은 색으로 바꾸었다.

흰색과 검은색 돌들이 M×N 그리드 위에 놓여 있을 때, 모든 돌들이 같은 색이 되도록 하는 색 바꾸기의 최소 횟수를 찾는 프로그램을 작성하시오.

※ 이 문제의 채점 데이터는 공개된 공식 데이터가 없어 재구성한 것입니다. 문제 지문은 원본(정보올림피아드 기출)을 따릅니다.

제약
입력 형식

첫째 줄에는 M×N 그리드를 나타내는 두 양의 정수 M과 N이 빈칸을 사이에 두고 주어진다. M과 N은 2 이상 100 이하이다. 둘째 줄부터 M개의 각 줄에는 그리드의 가로줄 한 줄에 놓여진 흰색 돌을 나타내는 0과 검은색 돌을 나타내는 1이 빈칸을 사이에 두고 연속해서 N개 주어진다.

출력 형식

첫째 줄에 모든 돌들이 같은 색이 되도록 하는 색 바꾸기의 최소 횟수를 출력한다.

예제 1
입력
5 6
1 1 0 1 0 0
1 0 0 1 1 1
1 1 0 1 1 1
0 0 0 0 0 0
1 1 1 0 1 1
출력
2
문제 정보

생성자가 기록되지 않았습니다.

출처 올림피아드 > 한국정보올림피아드 > KOI 2011 > 2차 대회 > 고등부 3번

평가 및 의견

그리드 게임

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

그리드 게임

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8