나의 파이썬 코딩테스트 여정_1

최현진·2022년 8월 27일
0

왜 파이썬인가
동일한 구현에 필요하며 코드가 짧은 편이라 시간이 제한적인 상황에서 용이하며, 특정한 서버로 요청을 보내는 request 라이브러리와 반환된 Json파일을 읽어오는 Json 라이브러리가 있어 API와 통신과 같은 부분을 개발할 때 효율적이다.

1차 문제풀이 충족 순서
1. 답맞추기
2. 성능 복잡도 줄이기
3. 시각적인 복잡도 줄이기

2차 문제풀이 충족 순서
1. 지문 파악 및 복잡도 분석
2. 풀이 설계
3. 풀이 작성

마스터 유형 순서
1. BFS/DFS
2. 그리디
...

성능평가(코테 문제는 명시되어있지않다면 시간제한이 1~5초)
복잡도

  • 시간복잡도 : 입력에 대한 수행시간
  • 공간복잡도 : 입력에 대한 메모리 사용량
  • 시각적인 측면이 아닌 성능적 측면에서의 복잡도를 말함
  • 빅오 표기법 : 가장 빠르게 증가하는 항만을 고려
  • 상수시간, 로그시간, 선형시간, 로그선형시간, 이차시간, 삼차시간, 지수시간 등 존재

알고리즘 설계

  • 일반 CPU 기반 개인 컴퓨터나 채점용 컴퓨터에서 연산 횟수가 5억을 넘어가는 경우 : C언어는 1~3초 가량, Python은 5~15초 가량 소요, PyPy의 경우 때로는 C언어보다 빠르게 동작하는 경우도 존재
  • 시간제한 1초 기준으로 알고리즘 설계 기준
  • N 범위가 500 : O(N3)
  • N 범위가 2000 : O(N2)
  • N 범위가 100,000 : O(NlogN)
  • N 범위가 10,000,000 : O(N)

지수표현방식 공부하기

  • e 또는 E 다음에 오는 수 : 10의 지수부
  • 1e9 = 10의 9제곱(1,000,000,000)
  • 유효숫자e지수제곱 = 유효숫자 * 10지수제곱
  • 임의의 큰 수를 표현할 때 자주 사용
  • 최단 경로 알고리즘에서는 도달할 수 없는 노드에 대한 최단거리를 무한(INF)로 설정
  • 가능한 최댓값이 10억 미만이라면 무한(INF)의 값으로 1e9이용가능
profile
유연하고 의연하게, 꾸준히

0개의 댓글