문자열, 리스트 인덱스별로 묶기_for문과 zip() 활용법

HEE·2025년 4월 12일
0
post-thumbnail

1. 프로그래머스 python 코딩테스트 입문

Level 0. 문자열 섞기

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

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

정답 확인

  1. for문 활용 : 쉬운 방법
def solution(str1, str2):
    a = ''
    for i in range(len(str1)):
        a += str1[i]
        a += str2[i]
    return a
  1. zip() 활용
def solution(str1, str2):
    return ''.join(a+b for a,b in zip(str1,str2))

2. 프로그래머스 python 코딩테스트 입문

Level 1. 내적

길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.

이때, a와 b의 내적은 a[0]b[0] + a[1]b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이)

정답 확인

def solution(a, b):
    return sum(x*y for x,y in zip(a,b)

zip() 함수

여러개의 리스트, 튜플, 문자열 등 반복 가능한 객체들을 인덱스 기준으로 묶어주는 함수

  • 문자열, 리스트 등이 3개 이상인 경우에도 사용 가능.
  • 인덱스 0번끼리, 1번끼리, 2번끼리... 순서대로 묶음.
  • 보통 list() 함수로 감싸서 사용.
  • 리스트 길이가 다른 경우, 짧은 쪽에 맞춰지고, 긴 쪽은 자동 버림.

- i for i in 리스트 같은건 단독 사용 불가. 꼭 제너레이터 표현식() 혹은 리스트 컴프리헨션[]과 같이 써야함.

profile
ALL IS WELL

0개의 댓글