코테/백준

[백준/JAVA] 1032번: 명령 프롬프트

imname1am 2023. 7. 24. 00:50
반응형

🔺 문제

 

1032번: 명령 프롬프트

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

www.acmicpc.net

 

 

🔺 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.util.*;
import java.io.*;
 
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        
        int N = Integer.parseInt(br.readLine());
        String[] str = new String[N];
        
        for(int i = 0 ; i < N ; i++) {
            str[i] = br.readLine();
        }
        
        if(N == 1) {
            System.out.println(str[0]);
            return;
        }
        
        // 바깥 for문: 파일 이름 길이만큼 반복
        for(int i = 0 ; i < str[0].length() ; i++) {
            boolean isSame = true;
            int idx = 0;    // 문자 가져올 인덱스
 
            // 안쪽 for문: (파일 갯수 - 1)만큼 반복
            for(int j = 0 ; j < N - 1 ; j++) {
                if(str[j].charAt(i) != str[j + 1].charAt(i)) {
                    isSame = false;
                    idx = j;    // i번째 파일 이름의 j번째 문자 가져오기 위해 인덱스 저장
                    sb.append("?");
                    break;
                }
            }
            
            if(isSame) sb.append(str[idx].charAt(i));
        }
        
        System.out.println(sb);
    }
}
 
cs

 


🔺 다른 풀이들

- 간단쓰한 풀이

 

[백준] 1032번 : 명령 프롬프트 – JAVA [자바]

https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길

propercoding.tistory.com

 

 

 

- 오 그냥 입력받은 문자열 하나를 배열로 저장해둠.

 여기서 이제 아예 문자가 다르면 해당 위치의 문자를 물음표로 바꾸고, 나중에 문자열만 출력하심... 굿굿

 

+ 안팎 반복문 범위를 나랑 반대로 하심!

 

[백준] 1032번 명령 프롬프트 자바(Java)

https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길

dev-coco.tistory.com

 

 

- 오 2차원 char 배열 사용하심.

 

로그인

 

www.acmicpc.net

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.*;
 
public class Main{
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        
        int n = s.nextInt();
        int m = 0;
        char[][] a = new char[n][50];
        
        for(int i = 0 ; i < n ; i++) {
            String k = s.next();
            
            for(int j = 0 ; j < k.length() ; j++) {
                a[i][j] = k.charAt(j);
                
                if(a[0][j] != k.charAt(j))
                    a[0][j]='?';
            }
        }
        
        for(int i = 0 ; i < m ; i++) {
            System.out.print(a[0][i]);
        }
    }
}
 
cs

💬 느낀 점

처음에 안쪽이랑 바깥쪽 조건문 반복 범위가 좀 헷갈렸다...

결론적으로 어떻게 구성해도 답을 낼 수는 있지만...

 

 

 

1회독 2회독 3회독 4회독 5회독
V        

 

반응형