SWE(5110)_수열합치기

SWE 5110 - 수열합치기

  • 시간초과가 떴다.
  • 링크드 리스트로 구현해야 한다길래 혹시나 하는 마음에 deque를 써봤지만 실패했다.
import collections
lst = collections.deque()
lst2 = collections.deque()
TC = int(input())

for tc in range(1, TC+1):
    N, M = map(int, input().split())  # 수열의 길이, 수열의 개수
    lst = list(map(int, input().split()))
    for i in range(M-1):
        lst2 = list(map(int, input().split()))
        for j in range(len(lst)):
            if max(lst) < lst2[0]:
                lst = lst+lst2
            if lst[j] > lst2[0]:
                lst = lst[0:j] + lst2+lst[j:]
                break

    result = lst[-10:]
    print("#%s" % tc, end=" ")
    for i in range(1, 11):
        print(result[-i], end=" ")
    print()

  • 애초에 수열 하나로 묶음을 만들지 않고, 알파벳 개수별로 노드를 만들어서 넣어줘야 하는걸까?
  • 음…
  • 내일 다시 풀자

참고자료 [SWexperacademy]https://swexpertacademy.com [참고블로그]https://tothefullest08.github.io/algorithm/2019/03/09/4_5102_%EB%85%B8%EB%93%9C%EC%9D%98%EA%B1%B0%EB%A6%AC/

0%