[프로그래머스 LEVEL 1] 문자열 섞기

chxxrin·2024년 4월 1일
0

문제 설명

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

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

제한사항

1 ≤ str1의 길이 = str2의 길이 ≤ 10
str1과 str2는 알파벳 소문자로 이루어진 문자열입니다.

입출력 예

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

코드

def solution(str1, str2):
    answer = ''
    for s1, s2 in zip(str1, str2):
        answer += s1 + s2
    return answer

풀이

  • zip 함수로 str1와 str2 두 문자열을 받아서 하나의 튜플로 만들어줌 -> 그 문자열 내에서 각각의 s1, s2 요소가 반복해서 순서대로 순회함

  • 그걸 answer 문자열에 더해줌

  • zip 함수
    여러 개의 순회가능한 객체를 받아서 각 객체에서 하나씩 원소를 가져와서 튜플을 만들어주는 파이썬 내장 함수
    예를 들어, 두 개의 리스트가 있을 때, zip 함수를 사용하여 각 리스트의 원소들을 순서대로 묶어 튜플로 만들 수 있습니다. 만약 입력으로 받은 iterable 객체들의 길이가 다를 경우, 가장 짧은 iterable 객체의 길이에 맞춰져서 반환됩니다.

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

answer = zip(list1, list2)
print(list(answer))  # 출력: [(1, 'a'), (2, 'b'), (3, 'c')]

zip 함수는 주로 반복문과 함께 사용되어 여러 개의 iterable 객체를 동시에 순회하며 작업할 때 유용하게 활용됩니다. 위의 코드에서 for 반복문과 함께 zip 함수를 사용하면 각 리스트의 원소를 동시에 접근할 수 있습니다.=> zip() + for반복문 : 각 리스트의 원소를 동시에 접근

for item1, item2 in zip(list1, list2):
    print(item1, item2)
출력
1 a
2 b
3 c

0개의 댓글