백준 1969 java : Greedy algorithms

import java.util.Arrays;
import java.util.Scanner;
public class bj1969 {
static Scanner scanner = new Scanner(System.in);
static int N, M;
static char[][] gene;
static int HammingDistance = 0;
public static void main(String[] args) {
inputData();
System.out.println(findAnswer());
System.out.println(HammingDistance);
scanner.close();
}
public static void inputData() {
System.out.println("inputData()");
int i, j;
N = scanner.nextInt();
M = scanner.nextInt();
gene = new char[N][M];
for (i = 0; i < N; i++) {
String temp = scanner.next();
for (j = 0; j < M; j++) {
gene[i][j] = temp.charAt(j);
}
}
}
public static String findAnswer() {
System.out.println("findAnswer()");
StringBuilder answer = new StringBuilder();
int i, j;
//모든 문자열과 비교해, 같은 문자가 가장 많은 문자열
for (i = 0; i < M; i++) {
//현재 열에 있는 문자 개수 파악
int[] count = {0, 0, 0, 0};
for (j = 0; j < N; j++) {
if (gene[j][i] == 'A') {
count[0]++;
} else if (gene[j][i] == 'C') {
count[1]++;
} else if (gene[j][i] == 'G') {
count[2]++;
} else {
count[3]++;
}
}
//가장 많은 문자의 인덱스 구하기
int max = -1, index = 0;
for(j = 0; j < 4; j++){
if(max < count[j]){
index = j;
max = count[j];
}
}
//해당 인덱스를 문자열에 붙여서 하나씩 문자열 키우기
if(index == 0){
answer.append("A");
}
else if(index == 1){
answer.append("C");
}
else if(index == 2){
answer.append("G");
}
else{
answer.append("T");
}
System.out.println("answer : " + answer);
}
for(i = 0; i < N; i++){
for(j = 0; j < M; j++){
if(gene[i][j] != answer.charAt(j)){
HammingDistance++;
}
}
}
return answer.toString();
}
}