본문 바로가기
728x90

시간복잡도2

[Algorithm] 1. 시간 복잡도, 공간 복잡도 [Algorithm] 1. 시간 복잡도, 공간 복잡도 1. 복잡도란? 더보기 알고리즘의 성능을 나타내는 척도 얼마나 복잡한지를 의미한다. 높아질 수록 좋지는 않은 것이다. 알고리즘은 컴퓨터 속에서 돌아간다. 그렇기 때문에 얼마나 더 오래 걸리느냐, 얼마나 더 큰 용량을 차지하느냐로 복잡도를 계산한다. 이를 각각 시간 복잡도, 공간 복잡도라고 한다. 시간 복잡도와 공간 복잡도는 일종의 거래 관계에 있다. 마치 역세권을 희망하면 월세가 높아지고, 월세를 낮추려면 역세권을 포기해야 하는 것처럼 메모리를 더 사용하는 대신 시간을 줄일 수도 있고 시간을 더 쓰는 대신 메모리 용량을 작게 사용할 수 있다. 이 계산은 우리가 유한한 성능을 가진 컴퓨터와 기기들을 가지고 있기 때문에, 효율적이고 더 빠르고, 더 경제적.. 2022. 4. 27.
[백준] 10989 수 정렬하기 python 알고리즘 문제 문제 10989. 수 정렬하기 3 1. 나의 코드와 발상 과정 import sys n = int(sys.stdin.readline()) num_list = [0]*10001 for i in range(n): num = int(sys.stdin.readline()) num_list[num] += 1 for i in range(10001): if num_list[i] != 0: for j in range(num_list[i]): print(i) 굉장히 제한된 시간과 메모리이기 때문에 리스트를 하나 더 생성해서 정렬을 한다던지 하는 방법이 활용될 수 없다. 그래서 10000까지 나오는 자연수이기 때문에 인덱스를 10000까지 가지는 빈 리스트를 만들어서 연속으로 입력되는 num값을 num_list의 인덱스로 .. 2022. 4. 20.
728x90