반응형
🔺 문제
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 |
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 21921번: 블로그 (0) | 2023.07.25 |
---|---|
[백준/JAVA] 3273번: 두 수의 합 (0) | 2023.07.24 |
[백준/JAVA] 2338번: 긴자리 계산 (0) | 2023.07.23 |
[백준/JAVA] 14910번: 오르막 (0) | 2023.07.23 |
[백준/JAVA] 2003번: 수들의 합 2 (0) | 2023.07.23 |