### 알아두면 유용한 함수 ###
#############
# > 투 포인터
# 리스트에 순차적으로 접근해야 할 때 2개의 점의 위치를 기록하면서 처리하는 기법
# 특정 합을 가지는 부분 연속 수열 찾기
# 1. start 와 end가 첫번째 원소의 인덱스(0)를 가리키도록 한다.
# 2. 현재 부분합이 M과 같다면 카운트한다.
# 3. 현재 부분이 M보다 작으면 end를 1 증가시킨다.
# 4. 현재 부분이 M보다 크거나 같으면 start를 1 증가시킨다.
# 5. 모든 경우를 확인할 때까지 2 ~ 4 과정을 반복한다.
# 사전에 정렬된 리스트 A 와 B 선언
n, m = 3, 4
a = [1, 3, 5]
b = [2, 4, 6, 8]
# 리스트 A 와 B 의 모든 원소를 담을 수 있는 크기의 결과 리스트 초기화
result = [0] * ( n + m )
i = 0
j = 0
k = 0
# 모든 원소가 결과 리스트에 담길 때까지 반복
while i < n or j < m:
# 리스트 B 의 모든 원소가 처리되었거나, 리스트 A 의 원소가 더 작을 때
if j >= m or (i < n and a[i] <= b[j]):
# 리스트 A 의 원소를 결과 리스트로 옮기기
result[k] = a[i]
i += 1
# 리스트 A 의 모든 원소가 처리되었거나, 리스트 B 의 원소가 더 작을 때
else:
# 리스트 B 의 원소를 결과 리스트로 옮기기
result[k] = b[j]
j += 1
k += 1
# 결과 리스트 출력
for i in result:
print(i, end=' ')
'이것이 취업을 위한 코딩테스트다 with 파이썬' 부록 학습내용
'공부 > 파이썬' 카테고리의 다른 글
파이썬 기타 알고리즘 - 순열과 조합 (0) | 2022.12.09 |
---|---|
파이썬 기타 알고리즘 - 구간 합 계산 (0) | 2022.12.09 |
파이썬 기타 알고리즘 - 소수의 판별 (0) | 2022.12.08 |
파이썬 주요 라이브러리 문법 (0) | 2022.12.07 |
파이썬 입출력 (0) | 2022.12.06 |