728x90
코드 힌트
- 문제 이해:
- 여러 문자열이 주어졌을 때, 모든 문자열에서 같은 위치의 문자가 동일한 경우 그 문자를 유지합니다.
- 하지만 다른 문자가 있는 경우 해당 위치를 '?'로 바꿉니다.
- 아이디어:
- 첫 번째 문자열을 비교 기준으로 사용합니다.
- 두 번째 문자열부터 문자 하나하나를 비교하며 다른 문자가 있으면 해당 위치에 '?'를 설정합니다.
- 문자열 비교와 수정:
- StringBuilder를 사용한 이유는 문자열을 수정할 수 있기 때문입니다.
- String은 불변 객체이므로 StringBuilder가 성능적으로 유리합니다.
정답은 더보기 클릭
더보기
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in); // 입력을 받기 위한 Scanner 객체 생성
int n = in.nextInt(); // 입력으로 주어지는 문자열의 개수
in.nextLine(); // 버퍼를 비우기 위해 사용 (줄바꿈 문자 처리)
// 첫 번째 문자열을 StringBuilder에 저장하여 비교 기준으로 사용
StringBuilder sb = new StringBuilder(in.nextLine());
// 두 번째 문자열부터 마지막 문자열까지 비교
for (int i = 1; i < n; i++) {
String s = in.nextLine(); // 현재 문자열 입력
// 문자열의 각 문자들을 비교
for (int j = 0; j < s.length(); j++) {
// 기준 문자열과 현재 문자열의 문자가 다르면 '?'로 변경
if (sb.charAt(j) != s.charAt(j)) {
sb.setCharAt(j, '?'); // 해당 위치의 문자를 '?'로 변경
}
}
}
// 최종적으로 완성된 패턴 출력
System.out.print(sb);
}
}
728x90
'백준' 카테고리의 다른 글
[백준] 트리의 지름 (1967번) (1) | 2024.10.19 |
---|---|
[백준] 트리의 지름 (1967번) (0) | 2024.10.18 |
[백준] Z (1074번) (0) | 2024.10.17 |
[백준] 뱀과 사다리 게임 (16928번) (2) | 2024.10.07 |
[백준] 감소하는 수 (1038번) (0) | 2024.10.01 |