코딩테스트

[백준/1032/명령 프롬프트]

개발하는지호 2024. 3. 18. 22:52

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

 

1032번: 명령 프롬프트

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

www.acmicpc.net

 

 

<<풀이>>

 

이 문제는 맨 처음 것을 toCharArray로 변형 한 뒤 그 다음 부터 각각의 char와 비교하면서 다르면 '?'로 바뀌게 함으로써

 

구할 수 있는 쉬운 문제이다.

 

그리고 기존에는 무조건 solution 값에 return값을 줘서 구했는데 void로 해서 바로 콘솔에 찍게 만들 수도 있다.

 

이런 점은 나중에도 유용하게 이용하자.


import java.util.Scanner;

class Main {
    private void solution(String[] arr, int n) {

        char[] target = arr[0].toCharArray();
        for (int i = 1; i < n; i++) {
            for (int j = 0; j < target.length; j++) {
                if (target[j] != arr[i].charAt(j)) target[j] = '?';
            }
        }
    
        for (char x : target) System.out.print(x);

    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String[] arr = new String[n];
        for (int i = 0; i < n; i++) {
            arr[i] = in.next();
        }
        T.solution(arr, n);
    }
}

 

 

 

근데 이상한 점을 발견했는데

 

바로 이 코드이다. 나는 처음에 return 값 String을 반환해서 주려고 했기에 x + answer 로 최종적으로 답을 구하려고 했다.

 

근데

 

Not a statement

 

이라는 문구가 뜨면서 에러가 생겼다.


import java.util.Scanner;

class Main {
    private String solution(String[] arr, int n) {

        char[] target = arr[0].toCharArray();
        for (int i = 1; i < n; i++) {
            for (int j = 0; j < target.length; j++) {
                if (target[j] != arr[i].charAt(j)) target[j] = '?';
            }
        }
        String answer = "";
        for (char x : target) x + answer;
        
        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String[] arr = new String[n];
        for (int i = 0; i < n; i++) {
            arr[i] = in.next();
        }

        System.out.println( T.solution(arr, n));
       
    }
    
}