여니의 취준 준비/코딩테스트 (Python)

[Python] n20053 | 최소, 최대 2

여니's 2021. 4. 27. 11:22


#1

#1
T=int(input())
array=[]
for i in range(T):
    N=int(input())
    array.append(list(map(int,input().split())))

for ex_list in array:
    print(min(ex_list), max(ex_list))

 

위 코드에서는

메모리 낭비가 심했다!

왜 이럴까보니까,

굳이 입력받은 모든 리스트들을 담아둘 필요가 없었기 때문이다

 

#2

#2
T=int(input())
array=[]

for i in range(T):
    N=int(input())
    array=list(map(int,input().split()))
    print(min(array), max(array))

위 코드처럼,

한 줄의 리스트만 저장하고,

for문 돌면서 계속 내용이 업데이트 되도록 하면

메모리 낭비도 덜하고,

시간도 1번째 코드와 비슷하게 걸리는 걸 확인할 수 있다

 

#3

#3
T=int(input())
array=[]
for i in range(T):
    N=int(input())
    array=sorted(map(int,input().split()))
    print(array[0],array[-1])

위 코드는 메모리 낭비는 덜한 대신

시간이 오래 걸린다.

 

sorted의 시간복잡도는 O(NlogN)

Min,Max -> O(N)

 

따라서 MIN,MAX를 사용하는 게 시간절약에 도움이 된다.

 

 

>> 시간 복잡도 확인

wayhome25.github.io/python/2017/06/14/time-complexity/

 

파이썬 자료형 별 주요 연산자의 시간 복잡도 (Big-O) · 초보몽키의 개발공부로그

파이썬 자료형 별 주요 연산자의 시간 복잡도 (Big-O) 14 Jun 2017 | 들어가기 알고리즘 문제를 풀다 보면 시간복잡도를 생각해야 하는 경우가 종종 생긴다. 특히 codility는 문제마다 시간복잡도 기준

wayhome25.github.io


eboong.tistory.com/281

 

[Python] sort, sorted, key 매개변수 이용한 정렬

PYTHON 정렬 함수 정리 1. sort() > 리스트를 정렬된 상태로 변경한다. (리스트만을 위한 메소드) 오름차순 : sort() 내림차순 : sort(reverse=True) 2. sorted() > 기존의 리스트를 변경하는 게 아니라, 정렬된..

eboong.tistory.com

eboong.tistory.com/281eboong.tistory.com/283

 

[Python] lambda 함수 정리

lambda 함수란? 이름 없는 함수이다! (=익명함수) 일회용 함수라서, 보통 한 번 쓰고 버릴 함수 생성시 사용된다. 함수 객체는 메모리에 올라가서 변수를 통해 자신이 호출되기를 기다린다. 따라서,

eboong.tistory.com