728x90
반응형
입력받은 문자열들의 각 문자를 모두 비교하여,
모두 같지 않다면 해당 문자를 ?로 바꾸는 문제입니다.
모두 같다면 문자를 그대로 출력합니다.
입력받는 문자열들의 길이는 동일합니다.
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 arr[] = new String[n];
for(int i=0; i<arr.length; i++) {
arr[i] = br.readLine();
}
for(int i=0; i<arr[0].length(); i++) {
int num = 1;
char s = arr[0].charAt(i);
for(int j=1; j<n; j++) {
if(s != arr[j].charAt(i)) {
num = 0;
break;
}
}
if(num == 1) {
sb.append(s);
}
else {
sb.append("?");
}
}
System.out.println(sb);
br.close();
}
}
2중 반복문을 구성하여 각 문자를 모두 비교하였습니다.
s 변수에 비교의 기준이 될 arr[0]의 값을 저장해 두고, 반복문으로 charAt(i)의 i값만 증가시켜 각 인덱스를 비교하였습니다.
비교구문 시작시마다 num변수의 값을 1로 초기화해둔 후,
만약 글자가 다르다면 num의 값을 0으로 바꾸고 break 하였습니다.
그리고 num의 값이 1 그대로일 경우(비교결과 같을 경우) 해당 문자를 그대로 추가했고
num의 값이 0일 경우(비교결과 다를 경우) 해당 문자 대신 "?"를 추가했습니다.
그리고 최종적으로 만들어진 문자열을 출력하여 문제를 해결하였습니다.
728x90
반응형
'Algorithm > 문자열' 카테고리의 다른 글
[Baekjoon 1110 / python / 브론즈1] 더하기 사이클 (0) | 2024.03.28 |
---|---|
[Baekjoon/JAVA] 백준 10988번 팰린드롬인지 확인하기 (0) | 2023.06.30 |
[Baekjoon/JAVA] 백준 9086번 문자열 (0) | 2023.06.30 |
[Baekjoon/JAVA] 백준 25314번 코딩은 체육과목 입니다 (0) | 2023.06.27 |
[Baekjoon/JAVA] 백준 2439번 별 찍기 - 2 (0) | 2023.06.26 |