Python

알아두면 좋은 것 !!

수줌이 2021. 2. 19. 19:41

⭐ 문제 풀이를 위한 중요 테크닉 !!

1. 방향(direction)을 설정해서 이동하는 문제 유형 

  • dx, dy라는 별도의 리스트를 만들어 방향을 정하는 것이 효과적 !!

  • 예) 현재 캐릭터가 북쪽을 바라보고 있을 때 북쪽으로 이동하기 위해서 x와 y좌표를 각각 dx[0], dy[0] 만큼 더한다. 즉, 현재 위치에서 (-1,0)만큼 이동시키는 것이다.

  • 이처럼 코드를 작성한다면, 반복문을 이용하여 모든 방향을 차례대로 확인할 수 있다는 점이 유용하다 !! 

 

2. 파이썬은 다른 언어에 비해 구현상의 복잡함이 적은편이지만, 데이터 처리량이 많을 때는 꼭 메모리 제한을 고려하자 !!

  • 일반적인 코딩테스트에서는 메모리 사용량 제한보다 더 적은 크기의 메모리를 사용해야 한다는 점 정도만 기억 !!

  • 리스트를 이용할 때 고려사항 : 메모리 제한

 

3. 그리디 알고리즘 문제 유형

  • 문제 풀이를 위한 최소한의 아이디어를 떠올리고, 이것이 정당한지 검토할 수 있어야 답을 도출할 수 있다.

 

4. 완전 탐색 알고리즘

  • 일반적인 완전 탐색 알고리즘은 비효율적인 시간 복잡도를 가지고 있으므로, 데이터 개수가 큰 경우에 정상적으로 동작하지 않을 수 있다. 

  • 확인(탐색)해야 할 전체 데이터의 개수가 100만개 이하일 때 완전 탐색을 사용하는 것이 적절하다 !! 

 

5. 2차원 리스트를 선언할 때

  • 컴프리헨션을 이용하는 것이 효율적 !!

⭐ 다양한 유형에 대비하기 위해 파이썬 문법을 자유롭게 사용할 수 있도록 훈련하는 것이 중요 !! 

 

 

이 글은 "이것이 코딩 테스트다" 에서 배운 내용을 정리하여 작성하였습니다.