[JAVA] 명령 프롬프트

NoHae·2025년 10월 12일

백준

목록 보기
102/106

문제 출처

연습문제 > 명령 프롬프트
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)이다.

문제푼 흔적


profile
노력 해보려고 하는 사람(00년생 소프트웨어융합학과, 24년 12월 부터 백엔드 및 코테 공부 시작)

0개의 댓글