코드가 매우 길고 반복문과 조건문이 복잡하지만... 그래도 두 번째 시도만에 통과한 나의 코드... 다른 사람들이 올려둔 코드를 보니 꽤나 간단하더라...ㅋㅋㅋㅋㅋ 아직 몇 번 안해본 코테지만 다른 정답을 보면 "와 난 왜 이 생각을 못했지?" 싶음. 아직 컴퓨터적 사고력이 부족하다는걸 매우 느낀다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
int num = Integer.parseInt(br.readLine());
if(num>1){
general(num);
}else
one_file();
}
//파일갯수 한개
public static void one_file() throws IOException{
String file_name = br.readLine();
System.out.println(file_name);
}
//파일갯수 여러개
public static void general(int num) throws IOException{
String[][] list ;
int len =0;
String[] file_name = null ;
list = new String[num][];
for(int i=0; i<num; i++){
String tmp = br.readLine();
list[i] = tmp.split("");
}
len = list[0].length;
//파일명 두자리 이상
if(len>1){
file_name = new String[len];
for(int i=0; i<num-1; i++){
for(int j=0; j<len;j++){
if(!list[i][j].equals(list[i+1][j])){
file_name[j]="?";
continue;
}else{
if(file_name[j]!=null && file_name[j].equals("?")){
file_name[j]="?";
}else file_name[j]=list[i][j];
}
}
}
for(int j=0; j<file_name.length;j++){
System.out.print(file_name[j]);
}
//파일명 한자리
}else{
for(int i=0; i<list.length-1; i++){
if(list[i][0].equals(list[i+1][0])){
continue;
}else
list[0][0] = "?";
break;
}
System.out.println(list[0][0]);
}
}
}
하지만 코드가 더러워도 작동만 되면 된다지...? ㅎ...
백준 내 코드 해석하느라 어렵겠지만 출력만 된다면 '정답입니다'를 내놔라~.~