아이디어
(a, b) 칸을 선택하면 해당 칸을 보다 좌, 상 단에 위치한 칸도 같이 뒤집히기 때문에 가장 우하단에 위치한 '뒷면' 동전부터 뒤집어가야 모든 동전을 정확히 앞면으로 만들 수 있다.
풀이코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int[][] arr;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
arr = new int[N][M];
for (int i = 0; i < N; i++) {
String input = br.readLine();
for (int j = 0; j < M; j++) {
arr[i][j] = input.charAt(j) - '0';
}
}
int cnt = 0;
for (int i = N - 1; i >= 0; i--) {
for (int j = M - 1; j >= 0; j--) {
if (arr[i][j] == 1) {
flip(i, j);
cnt++;
}
}
}
System.out.println(cnt);
}
public static void flip(int a, int b) {
for (int i = 0; i <= a; i++) {
for (int j = 0; j <= b; j++) {
arr[i][j] = (arr[i][j] + 1) % 2;
}
}
}
}
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
2876번. 그래픽스 퀴즈 (1) | 2023.11.01 |
---|---|
3085번. 사탕 게임 (0) | 2023.11.01 |
15990번. 1, 2, 3 더하기 5 (0) | 2023.10.31 |
4963번. 섬의 개수 (0) | 2023.10.31 |
14400번. 편의점 2 (1) | 2023.10.31 |