본문 바로가기

Algorithm

[Java] 백준 1032 : 명령 프롬프트

📌 문제

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

 

1032번: 명령 프롬프트

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

www.acmicpc.net

 

📌 소스 코드

package baekjoon;

import java.util.Scanner;

public class Q1032 {    // 명령 프롬프트
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int testCase = scanner.nextInt();
        String[] strArr = new String[testCase];

        for (int i = 0; i < testCase; i++) { // 1
            strArr[i] = scanner.next();
        }

        StringBuilder sb = new StringBuilder(); // 2
        boolean isSame = true;  // 3

        for (int i = 0; i < strArr[0].length(); i++) { // 3
            for (int j = 1; j < testCase; j++) {
                isSame = true;
                if (strArr[0].charAt(i) != strArr[j].charAt(i)) { // 5
                    isSame = false; // 6
                    break;
                }
            }
            if (isSame) { // 7
                sb.append(strArr[0].charAt(i));
            } else {
                sb.append("?");
            }
        }
        System.out.println(sb); // 출력
    }
}



📌 풀이

  1. 각 인덱스에 문자열 입력
  2. 문자열 더해서 출력하기 위한 StringBuilder
  3. 값 다를 경우를 판별하기 위한 boolean
  4. 길이는 같으므로 첫 번째 문자열 길이를 고정으로 반복
  5. 문자를 하나씩 charAt으로 쪼개서 같은지 각각 3번씩 비교
  6. 하나라도 다를 경우 false로 초기화해주고 break
  7. true 면 문자 그대로 빌더에 저장

'Algorithm' 카테고리의 다른 글

[Java] 백준 16466 : 콘서트  (0) 2022.06.28
[Java] 백준 3028 : 창영마을  (0) 2022.06.21
[Java] 백준 1157 : 단어 공부  (0) 2022.06.04
[Java] 백준 11944 : NN  (0) 2022.04.01
[Java] 백준 2864번 : 5와 6의 차이  (0) 2022.03.27