연습문제 > 명령 프롬프트
https://www.acmicpc.net/problem/1032
검색 결과의 개수 N과 검색결과들이 주어 질 때, 공통된 문자는 출력하고, 공통되지 않은 문자는 '?'를 출력하라.

배열에 첫번째 문자를 넣고, 2번째 문자부터 각 자리마다 문자를 비교하여 다르면 '?'로 그 자리를 대체한다.
import java.io.*;
public class 명령_프롬프트 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
String first = br.readLine();
char arr[] = new char[first.length()];
for(int i = 0; i < arr.length; i++){
arr[i] = first.charAt(i);
}
for(int i = 1; i < N; i++){
String cur = br.readLine();
for(int j = 0; j < arr.length; j++){
if(cur.charAt(j) != arr[j]) arr[j] = '?';
}
}
StringBuilder sb = new StringBuilder();
for(int i = 0; i < arr.length; i++){
sb.append(arr[i]);
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
시간복잡도는 각 단어의 길이를 L이라 할 때, O(N x L)이다.

