🐸 문제 정보
🤖 알고리즘
투포인터
⏱️ 풀이 시간
14.41m
📝 풀이
처음에 괜한 도전정신으로 힙으로 풀어보려다가 숫자 개수 보고 정신차리고 제대로 풀었다.
간단한 투포인터 문제이고, 두 리스트에 맨 처음부터 움직이는 인덱스를 두어 값을 비교하면서 하나씩 채워나가면 된다.
어차피 둘 다 정렬된 배열이기 때문에, 한 리스트에서 인덱스가 끝에 도착하면 나머지 리스트의 나머지 값은 그냥 더해주면 된다.
🧑💻 나의 답
# pypy3
import sys
input = sys.stdin.readline
n, m = list(map(int, input().rstrip().split()))
a = list(map(int, input().rstrip().split()))
b = list(map(int, input().rstrip().split()))
ai = 0
bi = 0
res = []
while (ai != n) and (bi != m):
if a[ai] < b[bi]:
res.append(a[ai])
ai += 1
else:
res.append(b[bi])
bi += 1
res += a[ai:] + b[bi:]
print(*res, sep=' ')
'PS > 문제풀이' 카테고리의 다른 글
백준 3005 크로스워드 퍼즐 쳐다보기 Python (1) | 2024.02.05 |
---|---|
백준 1251 단어 나누기 Python (1) | 2024.02.05 |
백준 15565 귀여운 라이언 Python (0) | 2024.02.02 |
백준 11660 구간 합 구하기 5 Python (0) | 2024.02.02 |
백준 16987 계란으로 계란치기 Python (0) | 2024.02.02 |