728x90
1️⃣ join 이란?
파이썬에서 "구분자".join(리스트)는
리스트 안의 문자열들을 하나로 이어붙이는 메서드
words = ["pro", "gram", "mers"]
result = "".join(words)
print(result) # programmers
- "" : 빈 문자열을 구분자로 사용 → 그냥 붙임
- " ".join(words) → "pro gram mers" (공백으로 구분)
즉, join은 문자열을 합칠 때 쓰는 효율적인 방법임
2️⃣ zip 이란?
zip은 두 개(또는 그 이상)의 리스트를 쌍으로 묶어주는 함수
a = ["apple", "banana", "cherry"]
b = [1, 2, 3]
for x, y in zip(a, b):
print(x, y)
출력
apple 1
banana 2
cherry 3
zip(a, b)는 [("apple", 1), ("banana", 2), ("cherry", 3)] 같은 형태로 묶어줌
3️⃣ 위의 함수를 사용해서 코드 분석하기
def solution(my_strings, parts):
return ''.join([x[y[0]:y[1]+1] for x,y in zip(my_strings, parts)])
🔎 분석
1. zip(my_strings, parts)
my_strings와 parts를 같은 인덱스끼리 묶음.
my_strings = ["progressive", "hamburger", "hammer", "ahocorasick"]
parts = [[0, 4], [1, 2], [3, 5], [7, 7]]
zip - 결과
("progressive", [0, 4])
("hamburger", [1, 2])
("hammer", [3, 5])
("ahocorasick", [7, 7])
2. 리스트 컴프리헨션 부분
[x[y[0]:y[1]+1] for x,y in zip(my_strings, parts)]
- x는 문자열 (예: "progressive")
- y는 인덱스 구간 (예: [0, 4])
- x[y[0]:y[1]+1] → x[0:5] → "progr"
결과 리스트:
["progr", "am", "mme", "r"]
3. ''.join(...)
- 리스트 안 문자열을 전부 이어 붙임
- "progr" + "am" + "mme" + "r"
- 최종 결과 = "programmers"
✅ 정리
- join → 문자열 합치기
- zip → 여러 리스트를 인덱스 맞춰 묶기
- 이 문제 풀이 흐름:
- 문자열과 인덱스 구간을 짝지음 (zip)
- 각 구간대로 문자열을 잘라냄 (슬라이싱)
- 잘라낸 것들을 리스트에 모음
- 전부 합쳐 최종 문자열 반환 (join)
728x90
'Python' 카테고리의 다른 글
Python/endswith()/startswith() (2) | 2025.09.04 |
---|---|
Python/ .sort()/ sort()와 sorted() 차이점 (2) | 2025.09.02 |
Python/ 슬라이싱 규칙 (0) | 2025.08.28 |
pycharm/ Django/ git bash/ aws에 EC2로 서비스/ github로 코드 수동 배포 (0) | 2025.04.09 |
코딩테스트 - python 모음 (0) | 2024.11.27 |