HS_development_log

백준 1032번 - 명령 프롬프트 / Java 본문

Algorithm-백준/문자열처리

백준 1032번 - 명령 프롬프트 / Java

DevHyeonseong 2020. 7. 24. 18:42
반응형

1. 문제

 

1032번: 명령 프롬프트

첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 ��

www.acmicpc.net

 

2. 알고리즘

 

  1. 파일의 최대길이는 50, 최대 개수도 50이므로 모든 문자열을 검사해본다. 경우의 수는 2500이므로 제한 시간 안에 해결할 수 있다.

  2. 모든 파일의 첫번째 문자를 검사한다. 모두 같다면 문자 그대로를 출력하고 하나라도 다르다면? 를 출력한다

  3. 모든 파일의 모든 인덱스에 대하여 2번을 반복한다.

 

3. 코드

/**
 * 2020.07.24
 * 백준 1032 : 명령 프롬프트
 * DevHyeonseong
 */
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        int len = scan.nextInt();
        scan.nextLine();

        String[] words = new String[len];
        for (int i = 0; i < words.length; i++) {
            words[i] = scan.nextLine();
        }

        boolean[] answer = new boolean[words[0].length()];

        for (int i = 0; i < words[0].length(); i++) {
            for (int j = 0; j < words.length; j++) {
                if (j == words.length - 1) { // 인덱스를 넘어갈 수 있으므로 break 해준다
                    break;
                }
                if (words[j].charAt(i) != words[j + 1].charAt(i)) { // 하나라도 다른게 있다면 체크해주고 break
                    answer[i] = true;
                    break;
                }
            }
        }

        for (int i = 0; i < words[0].length(); i++) {
            if (answer[i]) { // 다른 파일과 이름이 다른 것
                System.out.print("?");
            } else {
                System.out.print(words[0].charAt(i));
            }
        }
    }
}
반응형