728x90

http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=316&sca=99

 

JUNGOL

 

www.jungol.co.kr


풀이 방법

수정중..

 

JAVA 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Jungol_1037_오류교정 {
	static StringTokenizer st;
	public static void main(String[] args) throws IOException {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		int N=Integer.parseInt(br.readLine());
		int [][] map=new int[N+1][N+1];
		int[] c=new int[N+1]; // 0은 O, 1은 X
		int[] r=new int[N+1];
		int resultR=0,resultC=0;
		
		// 입력받고, 행 검사
		for (int i = 1; i < N+1; i++) {
			int cntC=0;
			st=new StringTokenizer(br.readLine());
			for (int j = 1; j < N+1; j++) {
				int num=Integer.parseInt(st.nextToken());
				map[i][j]=num;
				if(map[i][j]==1) cntC++;
			}
			if (cntC%2!=0) {
				r[i]=1;
				resultR=i;
			}
		}
		// 열 검사
		for (int j = 1; j < N+1; j++) {
			int cntR=0;
			for (int i = 1; i < N+1; i++) {
				if(map[i][j]==1) cntR++;
			}
			if (cntR%2!=0) {
				c[j]=1;
				resultC=j;
			}
		}
		
		int cntC=0,cntR=0;
		
		for (int i = 1; i < N+1; i++) {
			cntC+=c[i];
			cntR+=r[i];
		}
		if (cntC==0 && cntR==0) {
			System.out.println("OK");
		}else {
        	// 하나의 비트를 바꿔서 패리티가 안되는 경우
			if(cntC>1 || cntR>1) {
				System.out.println("Corrupt");
			}else {
				System.out.println("Change bit ("+resultR+","+resultC+")");
			}
		}
	}
}

 

728x90

'알고리즘 > 정올' 카테고리의 다른 글

[JAVA] 정올 1681 해밀턴 순환 회로  (0) 2021.09.23
복사했습니다!