C# 백준 1120 문자열 (나는 이제 실버다 ㅋㅋ)

굥지·2024년 10월 24일
0

백준

목록 보기
7/7

❓문제

길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다.

두 문자열 A와 B가 주어진다. 이때, A의 길이는 B의 길이보다 작거나 같다. 이제 A의 길이가 B의 길이와 같아질 때 까지 다음과 같은 연산을 할 수 있다.

A의 앞에 아무 알파벳이나 추가한다.
A의 뒤에 아무 알파벳이나 추가한다.
이때, A와 B의 길이가 같으면서, A와 B의 차이를 최소로 하는 프로그램을 작성하시오.


✏️입력

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

⌨️출력

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


예제 입력1

adaabc aababbc

예제 출력1

2


예제 입력2

hello xello

예제 출력2

1


💻코드

using System;

namespace Baekjoon
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] input = Console.ReadLine().Split();
            string A = input[0];
            string B = input[1];
            int min = 50;

            for (int i = 0; i <= B.Length - A.Length ; i++)
            {
                int count = 0;
                for (int j= 0; j < A.Length ; j++)
                {
                    if (A[j] != B[i+j])
                    {
                        count++;
                    }
                }
                min = Math.Min(min, count);
            }
            Console.WriteLine(min);
        }
    }
}

✍️풀이

input에 띄어쓰기로 입력을 두 개 받고, input[0]은 문자열 A, input[0]은 문자열 B로 선언해준다.
여기서 A 길이 <= B길이 이므로 B-A만큼 반복문을 돌려준다.
A와 B의 차이를 최소화할 것이기 때문에 아래처럼 B문자열을 순회함.

이때 차이가 빈 곳을 제외하고 2개 차이가 나므로 2가 된다.

0개의 댓글

관련 채용 정보