목록공간복잡도 (2)
DevSSOM
연습문제 : 0 이동시키기 여러 개의 0과 양의 정수들이 섞여 있는 배열이 주어짐. 이 배열에서 0들은 전부 뒤로 빼내고, 나머지 숫자들의 순서는 그대로 유지한 배열을 반환하는 함수를 만들어봐. 예를 들어서, [0, 8, 0, 37, 4, 5, 0, 50, 0, 34, 0, 0] 가 입력으로 주어졌을 경우 [8, 37, 4, 5, 50, 34, 0, 0, 0, 0, 0, 0] 을 반환하면 됨. 공간 복잡도 O(1)으로 이 문제를 풀 수 있음? def moveZerosToEnd(nums): return nums def main(): print(moveZerosToEnd([0, 8, 0, 37, 4, 5, 0, 50, 0, 34, 0, 0])) if __name__ == "__main__": main() >..
알고리즘이 얼마나 효율적인지 측정하는 기준 시간복잡도 : 코드가 얼마나 빠르게 작동하냐. 시간복잡도가 커지면 코드는 느려지고, 시간복잡도가 낮아지면 코드는 빨라짐. 공간복잡도 : 코드가 얼마나 많은 메모리를 사용하냐. 공간복잡도가 커지면 메모리를 많이 차지하고, 공간복잡도가 낮아지면 메모리를 적게 차지해. 보통 코드의 효율성을 얘기할 때 공간복잡도보다 시간복잡도에 더 초점을 맞춰서 얘기하긴해. 시간복잡도(Time-complexity) 알고리즘에 사용되는 총 연산횟수. 어떤 알고리즘 안에서 연산을 몇번 하는가? 알고리즘이 진행되는데 걸리는 실행시간이 아니라, 연산횟수라는거에 유의. sum = 0; # 여기서 연산 1번 for i in [1, 2, 3, 4]: # 연산 4번 sum +=i; # 시간복잡도 =..