코딩 테스트/프로그래머스

[Python] 프로그래머스 부분 문자열 이어 붙이기

위시리 2024. 10. 12. 23:48

 

문제분석

  • 문자열 배열 my_strings
  • 이차원 정수 배열 parts 의 [s : e+1] 부분을 문자열 순서대로 이어 붙여 return

 

코드 설계

  • 같은 index의 문자열에 대해서 부분 문자열 발췌

 

정답 코드

def solution(my_strings, parts):
    answer = ''
    for i in range(len(my_strings)):
        str = my_strings[i]
        part = parts[i]
        answer += str[part[0]:part[1]+1]
    return answer

 

다른 사람 풀이 1

def solution(my_strings, parts):
    answer = ""
    for i, (s, e) in enumerate(parts):
        answer += my_strings[i][s:e+1]
    return answer

(피드백) answer가 문자열로 선언되었는데, 문자열은 immutable 객체이므로 for문을 반복할 때마다 새로운 str을 계속해서 선언하게 됩니다. 이는 비효율적이므로, answer = [] 및 answer.append() 를 사용하면 더 좋을 것 같습니다!

 

다른 사람 풀이 2

def solution(my_strings, parts):
    answer = ''
    for s, (x, y) in zip(my_strings, parts):
        answer += s[x:y+1]
    return answer