728x90
음 이거 전에 풀었었나 ?
암튼 더 깔끔하게 풀었다.
자바 지원이 안 돼서 테스트 케이스 일단 맞는 건 확인 !
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int i=1;i<=T;i++) {
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int arr[][] = new int[N][M];
boolean a[] = new boolean[N];
boolean b[] = new boolean[M];
for(int j=0;j<N;j++) {
String str = br.readLine();
for(int k=0;k<str.length();k++) {
arr[j][k] = Character.getNumericValue(str.charAt(k));
}
}
a[0] = true;
for(int k=0;k<M;k++) { //b배열을 다 채움.
if(arr[0][k] == 0)
b[k] = a[0];
else//1이면 ab요소 서로 달라야함.
b[k] = !a[0];
}
for(int j=1;j<N;j++) {//arr의 맨 오른쪽 끝 빼고 다 비교해나감.
for(int k=0;k<M-1;k++) {
if(arr[j][k] == 0) {
if(b[k] == true) a[j] = true;
else a[j] = false;
}
else {
if(b[k] == true) a[j] = false;
else a[j] = true;
}
}
}
if(arr[N-1][M-1] == 0) {
if(a[N-1] == b[M-1]) sb.append("yes");
else sb.append("no");
}
else {
if(a[N-1] == b[M-1]) sb.append("no");
else sb.append("yes");
}
System.out.println("#"+i+" "+sb);
}
}
}
728x90
'알고리즘 > Samsung' 카테고리의 다른 글
(자바) SWEA 11445. 무한 사전 (0) | 2023.05.20 |
---|---|
정렬 알고리즘 (0) | 2023.05.18 |
SW 14413. 격자판 칠하기 (BFS) (1) | 2023.05.14 |
SW 1288. 새로운 불면증 치료법 (0) | 2023.05.05 |
SW 1928. Base64 Decoder (0) | 2023.05.05 |