Etc/알고리즘

[백준] 1032

jjuni_96 2024. 7. 4. 21:56
728x90

문제

 

입력

 

출력

 

문제 분석

1. 모든 문자열을 배열에 담기

2. 각 문자열들의 자리들을 비교

   - 만약 같지 않다면 => "?"

   - 같고 "." 이라면 => "."

                  아니면 => 비교중인 알파벳

 

풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        // https://www.acmicpc.net/problem/1032

        InputStreamReader inputStreamReader = new InputStreamReader(System.in);
        BufferedReader bf = new BufferedReader(inputStreamReader);
        int count = Integer.parseInt(bf.readLine());

        // 문자열 집합
        String[] inputList = new String[count];
        for (int i = 0; i < count; i++) {
            inputList[i] = bf.readLine();
        }

        int strLength = inputList[0].length();

        String answer = "";
        // 문자열 길이만큼 돌면서 추출
        for (int i = 0; i < strLength; i++) {
            char firstStrChar = inputList[0].charAt(i);

            for (int j = 1; j < count; j++) {
                if (firstStrChar != inputList[j].charAt(i)) {
                    answer += "?";
                    break;
                } else { // 둘이 같다
                    if (j == count-1) { //마지막인경우
                        switch (firstStrChar) {
                            case '.':
                                answer += ".";
                                break;
                            default:
                                answer += String.valueOf(firstStrChar);
                        }
                    }
                }
            }
        }
        System.out.println(answer);
    }
}

 

알고리즘 분류

더보기

- 구현

- 문자

 

링크

https://www.acmicpc.net/problem/1032

 

728x90
반응형
LIST