Algorithm Problems

[Cos Pro 1급] 3차 4번 - 가장 짧은 문자열

WakaraNai 2021. 6. 5. 19:17
728x90
반응형

문제

두 문자열 s1과 s2를 붙여서 새 문자열을 만들려 합니다. 이때, 한 문자열의 끝과 다른 문자열의 시작이 겹친다면, 겹치는 부분은 한 번만 적습니다.

예를 들어 s1 = "ababc", s2 = "abcdab"일 때, 아래와 같이 s1 뒤에 s2를 붙이면 새 문자열의 길이는 9입니다.

두 문자열 s1과 s2가 매개변수로 주어질 때, s1과 s2를 붙여서 만들 수 있는 문자열 중, 가장 짧은 문자열의 길이를 return 하도록 solution 함수를 완성해주세요.

제한 조건
두 문자열 s1과 s2가 solution 함수의 매개변수로 주어집니다.

* s1과 s2의 길이는 1 이상 100 이하입니다.
* s1과 s2는 알파벳 소문자로만 이루어져 있습니다.

 

입출력 예

| s1      | s2       | return |
|---------|----------|--------|
| "ababc" | "abcdab" | 8      |


 

 

Python

def solution(s1, s2):
    m = 0
    for i in range(1, min(len(s1),len(s2))):
        if s1[-i:] == s2[:i]:
            m = max(m, len(s2[:i]))
        if s2[-i:] == s1[:i]:
            m = max(m, len(s1[:i]))
            
    return len(s1) + len(s2) - m

print(solution("ababc", "abcdab"))

 

728x90
반응형