백준 문자열

KIMYEONGJUN·2024년 11월 27일
0
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫째 줄에 A와 B가 주어진다.
A와 B의 길이는 최대 50이고,
A의 길이는 B의 길이보다 작거나 같고,
알파벳 소문자로만 이루어져 있다.

A와 B의 길이가 같으면서,
A와 B의 차이를 최소가 되도록 했을 때,
그 차이를 출력하시오.

내가 이 문제를 보고 생각해본 부분

BufferedReader를 사용하여 A와 B를 입력받는다.
길이 계산: A와 B의 길이를 계산하고, 최소 차이를 저장할 변수 minDifference를 초기화해준다.
차이 계산: A의 길이를 B의 길이에 맞추기 위해 B의 모든 가능한 위치에서 A를 비교해준다.
이때 A의 각 문자와 B의 해당 위치의 문자를 비교하여 차이를 계산한다.
최소 차이 업데이트: 각 위치에서의 차이를 비교하여 최소 차이를 업데이트한다.
최종적으로 최소 차이를 출력한다.

코드로 구현

package baekjoon.baekjoon_24;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 백준 1120번 문제
public class Main851 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] input = br.readLine().split(" ");
        String A = input[0];
        String B = input[1];

        int lenA = A.length();
        int lenB = B.length();

        int minDifference = Integer.MAX_VALUE;

        // A의 길이를 B의 길이에 맞추기 위해 인덱스를 조정합니다.
        for(int i = 0; i <= lenB - lenA; i++) {
            int currentDifference = 0;

            // A를 B의 i번째 인덱스부터 비교합니다.
            for(int j = 0; j < lenA; j++) {
                if(A.charAt(j) != B.charAt(i + j)) {
                    currentDifference++;
                }
            }

            // 현재의 차이와 최소 차이를 비교합니다.
            minDifference = Math.min(minDifference, currentDifference);
        }

        System.out.println(minDifference);
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글