숫자만 추출
문제 정보는 인프런의 파이썬 알고리즘 문제풀이 코딩테스트에 있습니다.
문제풀이
# 내가 도전해본 문제풀이!
n = int(input())
a = map(int, input().split())
m = int(input())
b = map(int, input().split())
tmp = []
for x in a:
tmp.push(x)
for x in b:
tmp.push(x)
print(sorted(tmp))
# for i in range(n+m):
# tmp.push(a[i])
n = int(input())
a = map(int, input().split())
m = int(input())
b = map(int, input().split())
p1 = p2 = 0
c = []
while p1 < n and p2 < m:
if a[p1] <= b[p2]:
c.append(a[p1])
p1 += 1
else:
c.append(b[p2])
if p1 < n:
c = c + a[p1:]
if p2 < m:
c = c + b[p2:]
for x in c:
print(x, end=' ')
sort() 함수를 사용할 경우 nlogn만큼의 속도가 걸린다.
문제에서는 이미 두 리스트가 각각 오름차순 순으로 정리가 되어있기 때문에, 해당 리스트를 잘 활용하면 n 속도가 걸리도록 할 수 있다.
리스트에서 현재 원소를 가르키고 있는 변수를 지정하여 각 리스트에서 크기비교를 해서 끝까지 돌지 않은 리스트를 끝에 합쳐주기