Coding/코딩 문제

코딩 문제 : 문자열 섞기

코딩짜는 머글 2024. 10. 4. 10:19

문제 설명

길이가 같은 두 문자열 str1과 str2가 주어집니다.

두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.

 

입출력 예

str1 str2 result
"aaaaa" "bbbbb" "ababababab"

 

 

나의 풀이

def solution(str1, str2):
    str3 = ""
    for i in range(len(str1)):
        str3 += str1[i] + str2[i]
    return str3

 

분명 for문도 사용했었는데... 왜 답이 나오지 않았었는지....  너무 어려워 보였는데 막상 답을 알고나면 약간 상실감이 몰려온다ㅋㅋㅋㅋㅋㅋ큐ㅠㅠ 아직 갈 길이 굉장히 멀다.

다른 사람의 풀이

def solution(str1, str2):
    answer = ''.join([str1[i] + str2[i] for i in range(len(str1))])
    return answer

 

다른 사람들이 짠 코드를 보면 항상 감탄하게 된다. 물론 이해조차 못하는게 대부분이긴 하지만... 이 풀이도 굉장히 코드가 간결하면서도 쉬워보여서 내가 짠것과 비교하기 위해 가져왔다. 그리고 모르는 함수도 새롭게 알게 되었다!!

join()함수 :  매개변수로 들어온 리스트에 있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환하는 함수

'구분자'.join(리스트나 튜플)

리스트의 값과 값 사이에 '구분자'에 들어온 구분자를 넣어서 하나의 문자열로 합쳐준다.

'_'.join(['a','b','c'])라고 한다면 "a_b_c" 와 같은 형태로 출력된다.