https://www.acmicpc.net/problem/1032
1032번: 명령 프롬프트
첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은
www.acmicpc.net
● 문제
● 접근 방법
String 배열의 크기를 n만큼으로 만들어준다.
다행히도 모든 n개의 글자의 길이는 같아서, 쉽게 문제 풀이가 가능하다.
String 배열을 cap이라고 두고, answer을 공백의 문자로 설정하자.
cap의 크기는 n이고 모든 글자수는 같으므로 cap[0]을 기준으로 잡고, cap[1~(n-1)] 까지 비교하면 된다.
for문으로 cap[i] 주소에 있는 문자열에 j번째 문자와 cap[i+1] 주소에 있는 문자열에 j번째 문자와 비교하여 한번이라도 틀리다면, answer의 문자에 '?'를, 아니라면 cap[i] 주소에 있는 문자열 j번째 문자를 붙여주면 해결되는 간단한 문제이다.
● 문제 풀이
import java.util.Scanner;
public class bak_1032 {
public static void main(String[] args) {
String answer = "";
//입력
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] cap = new String[n];
for(int i = 0; i < n; i++) {
cap[i] = sc.next();
}
//풀이
for(int i = 0; i < cap[0].length(); i++) {
boolean flag = true;
for(int j = 0; j < cap.length - 1; j++) {
if(cap[j].charAt(i) != cap[j+1].charAt(i)) { // 현재 주소의 문자와 앞주소의 문자를 비교
flag = false;
break;
}
}
if(flag) answer += cap[0].charAt(i); //한번이라도 틀린 것이 없다면 answer 문자열에 추가
else answer += "?"; // 한번이라도 틀린 것이 있다면 answer에 '?' 추가
}
//출력
System.out.println(answer);
}
}
'백준' 카테고리의 다른 글
[백준] 1059번 : 좋은구간 [Java] (0) | 2022.08.26 |
---|---|
[백준] 2501번 : 약수 구하기 [Java] (0) | 2022.08.25 |
[백준] 1011번 : Fly me to the Alpha Centauri [Java] (0) | 2022.08.25 |
[백준] 1009번 : 분산처리 [Java] (0) | 2022.08.25 |
[백준] 1008번 : A/B [Java] (0) | 2022.08.25 |