면접 앞두고 떨려서 카페와서 문제 풀고있네요;;(면접준비......망했죠?;;)
이 문제는 틀린 문자가 어떤 인덱스인지 찾는 문제 입니다. 모든 문자가 일치해야 하기 때문에 딱 하나라도 틀리면 물음표로 치환하면 될 것 같습니다
// 현재 문자 인덱스가 틀릴때마다 false로 변경해줍니다
Boolean[] arr2 = new Boolean[arr[0].length];
Arrays.fill(arr2, true);
배열길이는 문자열의 개수가 같기때문에 0번째 배열로 해주었습니다
그리고 최대 50개, 최대 디렉토리 길이 50이기 때문에 3중 for문으로도 해결 가능합니다.
for (int i = 0; i < n; i++) {
String s = arr[i];
for (int j = i + 1; j < n; j++) {
String diff = arr[j];
for (int k = 0; k < s.length(); k++) {
// 현재 인덱스가 다를때 boolean 배열이 다른 것을 체크 해줍니다.
if (s.charAt(k) != diff.charAt(k)) {
arr2[k] = false;
}
}
}
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < arr2.length; i++) {
if (arr2[i]) {
sb.append(arr[0].charAt(i));
} else {
sb.append("?");
}
}
System.out.println(sb);