본문 바로가기

백준

[백준] 명령 프롬프트 (1032번)

728x90

코드 힌트

  1. 문제 이해:
    • 여러 문자열이 주어졌을 때, 모든 문자열에서 같은 위치의 문자가 동일한 경우 그 문자를 유지합니다.
    • 하지만 다른 문자가 있는 경우 해당 위치를 '?'로 바꿉니다.
  2. 아이디어:
    • 첫 번째 문자열을 비교 기준으로 사용합니다.
    • 두 번째 문자열부터 문자 하나하나를 비교하며 다른 문자가 있으면 해당 위치에 '?'를 설정합니다.
  3. 문자열 비교와 수정:
    • 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