전체 글 44

시간 복잡도와 공간 복잡도

서론백준으로 알고리즘을 풀다보면 단순히 출력값을 구현해야하는 것이 아닌, 복잡도를 이해하면서 효율적으로 문제를 풀어야 하는 순간들을 맞이했다.이러한 이유로 인해 이번 기회에 시간 복잡도와 공간 복잡도가 무엇인지 이해해보는 시간을 가지도록 하겠다. # 복잡도란 복잡도는 알고리즘의 성능, 효율성을 나타내는 척도이다.각 알고리즘이 주어진 특정 크기의 입력(n)을 기준으로 수행시간(연산) 혹은 사용공간이 얼마나 되는지 객관적으로 비교할 수 있는 기준을 제시한다. 1. 시간 복잡도 (Time Complexity)시간 복잡도란 특정 크기의 입력을 기준으로 할 때 필요한 연산의 횟수를 나타낸다.이름이 시간 복잡도인 것과는 별개로 연산의 횟수를 세는 이유는 다음과 같다.1. 모든 OS, IDE, 플랫폼에서 동일한 결과..

백준 : 1620 (Python)

https://www.acmicpc.net/problem/16201. 내가 한 풀이(틀렸음)import sysn, m = map(int, sys.stdin.readline().split())list1 = []list2 = []for _ in range(n): list1.append(sys.stdin.readline())for _ in range(m): list2.append(sys.stdin.readline())for i in list2: if i.isdigit(): print(list1[int(i)-1]) else: print(list1.index(i)+1)정리하자면 리스트(O(n))는 딕셔너리(O(1))보다 시간복잡도가 더 복잡하기 때문에 시간초과를 해결..