인프런 커뮤니티 질문&답변

tkddnr961224님의 프로필 이미지
tkddnr961224

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

8. 침몰하는 타이타닉(그리디)

효율성

작성

·

395

0

안녕하세요

저는 정렬을 사용하지 않고 min,max를 이용해서 풀었는데 정렬로 푸는게 더 효율적일까요?

코드 첨부합니다.

while squre:
    if len(squre)==1:
        boat+=1
        break
    if max(squre)+min(squre)>m:
        squre.remove(max(squre))
        boat+=1
    
    else:
        squre.remove(max(squre))
        squre.remove(min(squre))
        boat+=1

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네. 정렬을 하고 left와 right로 하는게 효율성이 더 좋습니다.

remove 로 제거는 한다고는 하지만 max()자체가 시간복잡도가 O(n)인데 너무 많이 호출합니다.

tkddnr961224님의 프로필 이미지
tkddnr961224

작성한 질문수

질문하기