백준 1032 명령 프롬프트 JAVA

sundays·2023년 6월 9일
0

문제

명령 프롬프트

풀이

면접 앞두고 떨려서 카페와서 문제 풀고있네요;;(면접준비......망했죠?;;)
이 문제는 틀린 문자가 어떤 인덱스인지 찾는 문제 입니다. 모든 문자가 일치해야 하기 때문에 딱 하나라도 틀리면 물음표로 치환하면 될 것 같습니다

  1. 디렉토리 문자열 배열 선언
// 현재 문자 인덱스가 틀릴때마다 false로 변경해줍니다 
Boolean[] arr2 = new Boolean[arr[0].length];
Arrays.fill(arr2, true);

배열길이는 문자열의 개수가 같기때문에 0번째 배열로 해주었습니다

그리고 최대 50개, 최대 디렉토리 길이 50이기 때문에 3중 for문으로도 해결 가능합니다.

  1. 인덱스가 다른 문자 배열을 false로 바꾼다
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;
			}
		}
	}
}
  1. false인 인덱스는 물은표를 출력하고 true인 문자만 이어서 출력해줍니다.
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);

전체 코드

전체 코드

profile
develop life

0개의 댓글