열정 실천

백준 1032 - 명령 프롬프트 [String타입, StringBuilder] 본문

개발 공부/백준 문제풀이

백준 1032 - 명령 프롬프트 [String타입, StringBuilder]

구운오니 2022. 7. 7. 01:35
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class beakjoon_1032 {
    public static void main (String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();
        String le = "";
        String ne = "";
        int st_len = 0;
        for (int i=0; i<n; i++){

            if(i==0){
                le = br.readLine();
                sb = new StringBuilder(le);
                st_len = le.length();
            }
            else{
                ne = br.readLine();
                for (int j = 0; j<st_len; j++){
                    if(le.charAt(j) != ne.charAt(j)) {
                        sb.setCharAt(j,'?');
                    }

                }
            }
        }
        System.out.println(sb);

    }
}

첫 번째로 입력된 문자열을 저장하고 그 다음에 입력되는 문자열을 charAt()으로 문자 하나하나 비교해서 

다른 게 있으면 그 자리에 '?'를 삽입하는 방법을 생각했다. 

 

첫 번째로 입력받은 문자열을 StringBuilder와 문자열(String)에 두 번 저장하게 된 이유는,,,,,,,,

 

String 문자열은 특정 인덱스의 문자를 변환할 수 없는 immutable이고.....

StringBuilder는 특정 인덱스의 문자를 조회하는 방법이 없는건지 찾지 못한건지......

 

두 개를 동시에 써서 작성하게 되었다ㅠㅠ

 

혹시 잘못된 게 있다면 댓글 남겨주세요~!!