파이썬 기본 문법 정리

이윤재·2020년 9월 30일
0

🏀 개요

코딩 테스트 준비하는 관점으로 파이썬 문법을 정리한 것입니다.

코딩 테스트의 문제 풀이 방식은

  1. 지문 읽기 및 컴퓨터적 사고

  2. 요구 사항 분석 및 복잡도 고려 (O(n) : 1000만, O(nlogn) : 10만, O(n^2) : 2000, O(n^3) : 500)

  3. 문제 해결을 위한 아이디어 정리

  4. 구현

이렇게 가이드를 해주시는데 정말 공감되는 방법이다. 실제로, 시간 복잡도를 고려하지 않아서, 다 푼 줄 알았던 문제가 알고보니 틀린 경우도 있고, 아이디어 정리를 사소한 부분, 예를 들어 idx 이동,까지 신경쓰지 않고 구현에 들어가면 생각한 부분과 다르게 작동하여 결국 다른 결과물이 되는 경우도 있었다.

동빈나님께서는 문제만 읽는데 10 ~ 20분 정도 투자하는 것이 아깝지 않다고 하는데, 실제로 그런 식으로 접근하는 걸 습관화 해야한다.

참고 :
동빈나 유튜브 채널을 기반으로 정리한 것으로, 유튜브 링크를 첨부 하겠습니다.
동빈나 유튜브 링크

💡 접근 방식

자료형의 기반으로 접근하려고 한다. 실제로 자료형을 기반으로 문제 풀이에 접근하기 때문에 기본 요소이다.

  • 정수, 실수, 복소수
  • 문자열
  • 리스트, 튜플, dict
  • 집합

이미 알고 있는 내용들이 대부분이라, 기억해야할 부분들 위주로 정리!

[실수, 정수]

실수형에 대해서는 컴퓨터가 이진법으로 숫자를 인식하기 때문에 오차가 발생할 수 있다. 따라서 실수형에 대해서는 int(temp) 이런 식으로 정수형으로 나타내는데, 버림 방식이다.
INF = 1e9, 이런 방식으로 무한을 의미하는 값을 사용한다.

[리스트]

인덱싱과 슬라이싱을 주로 사용하고, 리스트 컴프리헨션을 이용하면 이중 배열 선언 등에서 장점을 가진다.

[[0] * M for i in range(N)] N * M 의 이중 배열 선언

주의 : [[0] * M ] * N 이렇게 선언하면 같은 주소를 복사하는 형식이라, 결국 열이 모두 같은 객체를 가짐. 잘못된 방식

[문자열]

pass

[집합]

set(), {} 으로 초기화

합집합, 교집합, 차집합 a : b, a & b, a - b 가 가능

순서가 존재하지 않아서 인덱스로 접근 불가, key로 접근! 따라서 조회 성능 O(1)으로 좋음

추가 요소
조합, 순열

from itertools import permutations
for i in permutations([1,2,3,4], 2):
    print(i, end=" ")

(1, 2) (1, 3) (1, 4) (2, 1) (2, 3) (2, 4) (3, 1) (3, 2) (3, 4) (4, 1) (4, 2) (4, 3)
출처: https://juhee-maeng.tistory.com/91 [BIU]

from itertools import combinations
for i in combinations([1,2,3,4], 2):
    print(i, end=" ")

(1, 2) (1, 3) (1, 4) (2, 3) (2, 4) (3, 4)
출처: https://juhee-maeng.tistory.com/91 [BIU]

참고 : 미흡한 부분이 많다. 추가로 참고하는 링크들이다.
자료형 시간 복잡도
점프 투 파이썬

profile
시작단계

0개의 댓글