이것이 코딩테스트다 with 파이썬 기반 정리 내용입니당
최근 IT 기업의 채용과정에서 대부분이 코딩테스트를 친다!


뉴스만 검색해봐도, 코딩테스트가 중요하고 개발자라면 항상 코딩테스트를 걱정할 것이다.
전체적으로 IT 개발직군의 경우에는 프로젝트 경험, 코딩테스트 준비, CS지식이 제일 중요하다는 생각이 든다..🧐
늦었지만 더 늦어지기전에 코딩테스트 준비를 제대로 해야겠다는 생각이 들어 슬슬 시작해보려 한다.
문제는 백준과 프로그래머스 중에서 선정하여 풀 생각이고,
스터디를 진행하며, 깃허브 잔디심기도 열심히 하려고 한다.ㅎㅎ
💡 코딩테스트에서 예를 들어 3문제가 나왔을 때, 3문제 다 풀었다고 만점일까?
절대 아니다.
시간복잡도,공간복잡도에 따라 더 효율적인 알고리즘을 사용한 사람이 더 높은 점수를 획득할 것이다.
따라서 시간 복잡도,공간 복잡도를 계산하는 방법에 대해서 알아보자
예전에 다 알았던 상식인데 안하다보니 까먹은 지식들이 많다😂
시간복잡도? :알고리즘을 위해 필요한 연산의 횟수
공간복잡도? :알고리즘을 위해 필요한 메모리의 양
👋 궁금한 점
예를 들어, 코딩테스트에서 한문제를 시간복잡도와 공간복잡도를 낮도록 제대로 푸는 것 vs 두문제를 복잡도를 고려하지 않고 푸는 것
어느 것이 더 높은 점수를 획득할까?
빅오(Big-O) 표기법을 사용한다
빅오 표기법을 간단히 정의하자면, 가장 빠르게 증가하는 항만을 고려하는 표기법
다시 말해 함수의 상한 만을 나타낸다.
실제 케이스를 보면서 이해하는게 좋을 것 같당
어쩌구
for x in array:
summary +=x
print(summary)
👉다음과 같은 경우는 print()도 있고 for문도 있지만, for문의 영향력이 가장 크기 때문에, for문으로 시간 복잡도를 판단한다.
예를 들어 5개의 데이터를 받아 차례로 5회 더해주는 경우. 이때 연산 횟수는 N에 비례한다 -> 즉 O(N)
2중 반복문이 사용된 경우 O(N^2)으로 생각할 수 있다.

문제를 풀다보면 대충 감각이 생길 듯 하다

시간 복잡도가 끝이 아니다,,,, 공간복잡도도 계산을 해야한다. 즉 메모리 사용량도 계산을 해야 된다!
import time
start_time=time.time() # 측정 시작
소스코드 블라블라
end_time = time.time()
print("time:",end_time - start_time) # 수행시간 출력
