< 문제 >
https://www.acmicpc.net/problem/1032
1032번: 명령 프롬프트
첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은
www.acmicpc.net
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class p1032 {
public static void main(String[] args) throws NumberFormatException, IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t=Integer.parseInt(br.readLine()); //테스트케이스 개수
String arr[]=new String[t];
for(int i=0;i<t;i++) {
arr[i]=br.readLine(); //배열에 값을 입력 받음
}
StringBuilder sb=new StringBuilder(arr[0]); //첫번째 문자열을 sb에 저장
for(int i=1;i<arr.length;i++) { // 배열의 크기만큼, 문자열의 개수만큼 반복문 (0번째는 sb에 저장했으므로 1번째부터 반복문)
for(int j=0;j<arr[i].length();j++) { // 해당 문자열의 길이만큼 반복문 돌기
if(sb.charAt(j)!=arr[i].charAt(j)) // 문자가 다른 부분을 찾아서
sb.setCharAt(j, '?'); // 해당 부분의 값을 ?로 바꾸기
}
}
System.out.println(sb);
}
}
✏️ 풀이 방법
1. 배열에 값을 입력 받음
arr [0] = "config.sys" , arr[1]= "config.inf" , arr[2]= "configures"
2. StringBuilder 변수 sb에 배열 arr의 0번째 값을 저장
sb= "config.sys"
3. 나머지 배열의 값들과 sb에 저장된 값을 비교해서,
다른 부분을 '?' 로 바꿔준다.
반복 1) config.sys(sb) 와 config.inf 비교
=> sb의 값이 config.??? 로 변경됨
반복 2) config.???와 configures 비교
=> sb의 값이 config???? 로 변경됨
'코딩테스트 > Baekjoon' 카테고리의 다른 글
[JAVA] 백준 18429번: 근손실 (1) | 2024.03.11 |
---|---|
[JAVA] 백준 1966번: 프린터 큐 (1) | 2024.03.08 |
[JAVA] 백준 1212번: 8진수 2진수 (0) | 2024.01.11 |
[JAVA] 백준 1075번: 나누기 (2) | 2024.01.09 |
[JAVA] 백준 1009번: 분산처리 (1) | 2024.01.08 |