언어/Python

[파이썬] 백준 1120번: 문자열

Frank_the_Tank 2020. 11. 13. 17:31

백준 1120번 문제

이 문제를 보았을 때, 다른 좋은 방법이 있을까? 라는 생각이 먼저 들었다. 왜냐하면 본인이 생각한 방법으로는 간단히 아니 단순히 생각해 X와 Y를 무식하게 비교하는 방식밖에 떠오르지 않았기 때문이다. 

생각한 순서는 다음과 같았다.

* 기본적으로 생각해 볼 수 있는 조건은 X에 아무 알파벳이나 추가할 수 있지만 하지 않겠다.(차이를 최소로 해야하기 때문에 Y와 같은 알파벳을 추가할 것임으로)

1. X에 문자가 들어오지 않는다면 0을 출력

2. X가 Y에 포함된 문자열이라면 0을 출력

3. 1, 2번 둘다 아니라면 두 문자열을 비교한다.

  3-1) 문자열의 길이가 같은 경우, 인덱스를 처음부터 끝까지 비교하며 차이만큼의 결과를 출력한다.

  3-2) 문자열 길이가 다른 경우, X 문자열의 길이만큼 앞에서부터 비교하여 차이를 list에 저장한다. 그 후 최소값을                출력한다.(여기서 몇 번을 해야할까? -> Y의 길이에서 X의 길이를 뺀 후 1을 더한 만큼 반복하면 된다.)

 

코드는 아래와 같이 짜보았다.

 

고찰 : 더 좋은 방법은 없을까? 효율적인 방법을 생각해 보아야겠다.