백준 11728 배열 합치기

꿈틀이·2023년 1월 26일
0

알고리즘 - 기초

목록 보기
12/21

from heapq import heappush, heappop, heapify,heapify
import sys
input = sys.stdin.readline

a,b = map(int,input().strip().split(" "))
A = list(map(int, input().split(" ")))
B = list(map(int, input().split(" ")))

heapify(ans := list(A+B))

while ans:
    print(heappop(ans),end = " ")

시행착오를 몹시 많이 겪었다 ㅠㅜㅜㅜㅠ

1. heapify(리스트)

list를 heapify 함수에 넣으면 heap 구조로 변환된다.

2. extend, + 와 append

A와 B라는 리스트가 존재할 때 두 개의 리스트 합치는 방법들이다! 하지만 각각 차이가 존재한다

A+B

새로운 리스타가 반환된다.
띠라서 print(A+B)를 하면 두 리스트를 이어 붙인 결과 값이 출력 된다

A.extend(B)

A의 주소값이 변하지 않고, 이 함수를 실행한 후 A를 출력하면 두 리스트를 이어붙인 결과 값이 출력된다. 하지만 print(A.extend(B))를 하면 None 이 출력된다.

또한 append와 비교해보자면 append는 매개변수 자체를 하나의 원소로 보는 반면 extend는 요소 하나하나를 리스트에 추가한다.

A.append(B)

위에서 언급한 바와 같이 A라는 리스트속에 B라는 리스트가 들어간 형태로 반환된다.

cf ) 틀린 이유

처음에 푼 방법 중 틀렸습니다가 뜬 이유는 문자열 형식으로 입력을 받은 후 풀이를 적용하였기 때문에 숫자로 인지하지 않고 문자열로 인지하여 숫자의 실제가 아닌 숫자 자릿수를 기준으로 한 숫자 크기에 의해 정렬이 되기 때문이다!

int 형변환 몹시 중요

profile
안녕하세용🤓

0개의 댓글