본문 바로가기

Python/Python 문제

Python 문제 34

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

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

그러나 s1 뒤에 s2을 붙이면 새 문자열의 길이는 8로, 더 짧게 만들 수 있습니다.

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

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

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

##### 입출력 예

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

##### 입출력 예 설명

문제에 주어진 예시와 같습니다.

 

내가 푼 답

def solution(s1, s2):
    s1_val = []
    s2_val = []
    length_a = len(s1) + len(s2)
    length_b = len(s2) + len(s1)

    for x in range(len(s1)):
        s1_val.insert(0, s1[-x -1])
        s2_val.append(s2[x])
        if s1_val == s2_val:
            length_a -= len(s1_val)

    s1_val = []
    s2_val = []

    for y in range(len(s1)):
        s2_val.insert(0, s2[-y -1])
        s1_val.append(s1[y])
        print(s2_val, s1_val)
        if s2_val == s1_val:
            length_b -= len(s2_val)

    if length_a >= length_b:
        length = length_b
    else:
        length = length_a

    answer = length
    return answer

일단 이렇게 해서 답은 나오는데 문제가 많다

일단 딱 저 값이 주어질때만 실행가능하다. 그거 하나? 정도 일단 답 성공

아 몰라~~

'Python > Python 문제' 카테고리의 다른 글

Python 문제 36  (0) 2021.11.23
Python 문제 35  (0) 2021.11.23
Python 문제 33  (0) 2021.11.22
Python 문제 32  (0) 2021.11.22
Python 문제 31  (0) 2021.11.22