알고리즘/백준

백준 1120번 - 문자열 / Python

Hwisaek 2021. 8. 25. 17:06
반응형

문제: https://www.acmicpc.net/problem/1120

 

1120번: 문자열

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

www.acmicpc.net

문제 설명

더보기

문제

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

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

  1. A의 앞에 아무 알파벳이나 추가한다.
  2. A의 뒤에 아무 알파벳이나 추가한다.

이때, A와 B의 길이가 같으면서, A와 B의 차이를 최소로 하는 프로그램을 작성하시오.

입력

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

출력

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


정답

a, b = input().split()

answer = 50

for i in range(len(b) - len(a) + 1):
    count = 0
    for j in range(len(a)):
        if b[i + j] != a[j]:
            count += 1
    answer = min(answer, count)

print(answer)

 


풀이

더보기
a, b = input().split()

answer = 50

for i in range(len(b) - len(a) + 1):
    count = 0
    for j in range(len(a)):
        if b[i + j] != a[j]:
            count += 1
    answer = min(answer, count)

print(answer)

  먼저 a, b를 입력받습니다. 그 다음 b를 a의 길이만큼 자르고, 그것들과 a를 비교하여 다른 글자의 개수가 최소가 되는 값을 출력하면 됩니다. 

 

a, b의 최대 길이가 50이므로 모든 경우를 확인해도 시간 초과가 나지 않아 사용 가능한 방법입니다.

반응형

'알고리즘 > 백준' 카테고리의 다른 글

백준 1748 - 수 이어 쓰기 1/ Python  (0) 2021.08.26
백준 2331번 - 반복수열  (0) 2021.08.26
백준 2108번 - 통계학 / Python  (0) 2021.08.25
백준 1475번 - 방 번호 / Python  (0) 2021.08.25
백준 1476번 - 날짜 계산  (0) 2021.08.25