Hi, There!
안녕하세요, 바오밥입니다.
목차
- 문제
- 풀이
문제
문제 내용
두 문자열 s1과 s2를 붙여서 새 문자열을 만들려 합니다.
이때, 한 문자열의 끝과 다른 문자열의 시작이 겹친다면, 겹치는 부분은 한 번만 적습니다.
예를 들어 s1 = "ababc", s2 = "abcdab"일 때, 아래와 같이 s1 뒤에 s2를 붙이면 새 문자열의 길이는 9입니다.
그러나 s2 뒤에 s1을 붙이면 새 문자열의 길이는 8로, 더 짧게 만들 수 있습니다.
두 문자열 s1과 s2가 매개변수로 주어질 때, s1과 s2를 붙여서 만들 수 있는 문자열 중, 가장 짧은 문자열의 길이를 return 하도록 solution 함수를 완성해주세요.
제한 조건
두 문자열 s1과 s2가 solution 함수의 매개변수로 주어집니다.
- s1과 s2의 길이는 1 이상 100 이하입니다.
- s1과 s2는 알파벳 소문자로만 이루어져 있습니다.
입출력 예
입출력 예 설명
문제에 주어진 예시와 같습니다.
풀이
풀이 코드 및 해설
def solution(s1, s2):
answer = 0
for i in range(len(s1)): # 첫 번째 문자열 길이만큼 반복
if s1[0:i] == s2[-i:]:
# 첫 번째 부분 문자열(앞)과 두 번째 부분 문자열(뒤)이 일치할 때
answer=i
# 겹치는 문자열 수를 저장
break
for i in range(len(s2)): # 두 번째 문자열 길이만큼 반복
if s2[0:i] == s1[-i:]:
# 두 번째 부분 문자열(앞)과 첫 번째 부분 문자열(뒤)이 일치할 때
if answer < i:
# 첫 번째 문자열 길이만큼 반복한 것보다 더 값이 큰 경우
# 즉 겹치는 문자열이 많다는 건 총 문자열의 길이가 짧은 것
answer=i
# 겹치는 문자열 수를 저장
break
answer = len(s1)+len(s2)-answer
# s1 + s2 값을 저장한 뒤 겹치는 문자열 수 빼기
return answer
'Certificate > Cert - Cos Pro 1급' 카테고리의 다른 글
[Cos Pro 1급] 기출문제 3회차, 소수의 합으로 표현하기 (0) | 2021.07.15 |
---|---|
[Cos Pro 1급] 기출문제 3회차, 전광판 문구 출력 (0) | 2021.07.15 |
[Cos Pro 1급] 기출문제 3회차, 비숍으로부터 도망쳐 (0) | 2021.07.15 |
[Cos Pro 1급] 기출문제 3회차, 팰린드롬 문제 (0) | 2021.07.15 |
[Cos Pro 1급] 기출문제 3회차, 배열을 회전시켜보세요 (0) | 2021.07.15 |