[코딩 테스트] - 파이썬 문법: 자료형

Jeonghwan Kim·2022년 9월 29일
0

코딩 테스트

목록 보기
2/21

파이썬 문법: 수 자료형

  • 정수, 실수, 지수표현 방식
    • 정수형: 양의 정수, 음의 정수, 0
    • 실수형: 변수에 소수점을 붙인 수를 대입하면 실수형 변수로 처리
      • 소수부가 0이거나, 정수부가 0인 소수는 0 생략
          1. → 5.0
        • -.7 → -0.7
    • 지수표현 방식: 임의의 큰 수를 표현하기 위해 자주 사용

  • 컴퓨터 시스템은 수 데이터를 처리할 때 진수를 이용하고, 실수를 처리할 때 부동 소수점(floating-point)방식을 이용하는데, 실수형을 저장하기 위해 4바이트 혹은 8바이트의 고정된 크기의 메모리를 할당하여 실수 정보를 표현할 때 오차가 발생함
    • 0.3 + 0.6 = 0.89999
    • round()함수를 통해 해결 가능
    • round(123.456, 2) → 123.46
  • 수 자료형의 사칙연산
    • %(나머지), //(몫), **(제곱)
    • 나누기 연산자(/)는 결과를 실수형으로 반환함
      • 7/3 → 2.333335

파이썬 문법: 리스트 자료형

  • 리스트: 여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형
  • 리스트 초기화
    • 리스트는 대괄호 [] 안에 원소를 넣어 초기화, 쉼표(,)로 원소 구분
    • 비어있는 리스트 선언: list(), []
    • 리스트의 원소에 접근할 때는 인덱스(Index)값을 괄호에 넣음, 인덱스는 0부터 시작
      # 크기가 n이고, 모든 값이 0인 1차원 리스트 초기화
      n = 10
      a = [0] * n
      
      print(a)
      # -> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  • 인덱싱(Indexing): 인덱스 값을 입력하여 리스트의 특정한 원소에 접근하는 것
    • 인덱스에 음의 정수를 넣으면 원소를 거꾸로 탐색함, 마지막이 -1
  • 슬라이싱(Slicing): 리스트에서 연속적인 위치를 갖는 원소들을 가져옴
    • 대괄호 안에 콜론(:)을 넣어 시작 인덱스와 끝 인덱스 설정
    • 끝 인덱스는 실제 인덱스보다 1 크게 설정
  • 리스트 컴프리헨션(List comprehension): 대괄호 안에 조건문과 반복문을 적용하여 리스트를 초기화함
    # 0부터 19까지의 수 중에서 홀수만 포함하는 리스트
    array = [i for i in range(20) if i % 2 == 1]
    print(array)
    # -> [1,3,5,7,9,11,13,15,17,19]
    • 2차원 리스트를 초기화 할 때 효과적으로 사용
    • (N X M 크기의 2차원 리스트)
      array = [[0] * m for _ in range(n)]
  • 반복을 수행하되 반복을 위한 변수의 값을 무시하고자 할 때 언더바(_) 사용
    for _ in range(5):
    	print("Hello World")
  • 리스트 관련 메서드
    • append()는 O(1)인 반면 insert()는 원소를 삽입한 후 위치를 조정하기 때문에 O(N)이라 많이 쓰면 시간초과될 수도 있음

파이썬 문법: 문자열, 튜플 자료형

  • “ , ‘ 사용
    • “”로 묶으면 내부적으로 ‘ 포함 가능
    • ‘’로 묶으면 내부적으로 “ 포함 가능
    • \사용 시 ‘, “ 포함가능
  • 문자열 연산
    • 문자열 변수에 덧셈(+)을 이용하면 문자열이 더해져 연결됨
    • 문자열 변수를 특정 양의 정수와 곱하면 문자열이 그 값만큼 여러번 더해짐
    • 문자열도 인덱싱과 슬라이싱 이용 가능하지만, 특정 인덱스의 값을 변경할수 는 없음 (immutable)
  • 튜플 자료형
    • 한 번 선언된 값을 변경할 수 없음
    • 소괄호() 이용
    • 리스트에 비해 상대적으로 공간 효율적
  • 튜플을 사용하면 좋은 경우
    • 서로 다른 성질의 데이터를 묶어서 관리해야 할 때
      • 최단 경고 알고리즘에서는 (비용, 노드번호)의 형태로 튜플 자료형을 자주 사용
    • 데이터의 나열을 해싱(Hashing)의 키 값으로 사용해야 할 때
      • 튜플은 변경이 불가능하므로 리스트와 다르게 키 값으로 사용 가능
    • 리스트보다 메모리를 효율적으로 사용해야 할 때

파이썬 문법: 사전, 집합 자료형

  • 사전 자료형
    • 키(Key)와 값(Value)의 쌍을 데이터로 가지는 자료형
    • 리스트나 튜플이 값을 순차적으로 저장하는 것과 대비됨
    • 키와 값의 쌍을 데이터로 가지며, 원하는 ‘변경불가능한(Immutable) 자료형'을 키로 사용할 수 있음
    • 파이썬의 사전 자료형은 해시 테이블(Hash Table)을 이용하므로 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있음 (상수 시간)
    • 문자열과 같은 key를 통해 데이터를 저장, 관리할 때 리스트보다 효율적으로 조회 가능
    • 키 데이터만 뽑아서 리스트로 이용할 때 .keys() 사용
    • 값 데이터만 뽑아서 리스트로 이용할 때 .values() 사용
  • 집합 자료형
    • 중복 허용 x, 순서 x
    • 어떤 데이터가 존재하는지 여부만 확인할 때 효과적으로 사용
    • 리스트 혹은 문자열을 이용해 초기화
      • set()함수 이용
    • {}안에 각 원소를 콤마(,)를 기준으로 구분하여 삽입하여 초기화
    • 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리 가능 (상수 시간)
    • 집합 자료형의 연산
      • 합집합(a|b), 교집합(a&b), 차집합(a-b)
    • 집합 자료형 관련 함수
      • 새로운 원소 추가: add()
      • 새로운 원소 여러 개 추가: update()
      • 특정한 값을 갖는 원소 삭제: remove()
  • 사전 자료형과 집합 자료형의 특징
    • 리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있음
    • 사전자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없음
      • 사전의 key 혹은 집합의 원소를 이용해 O(1)의 시간 복잡도로 조회
      • 키나 원소의 값으로는 변경 불가능한 문자열이나 튜플과 같은 객체가 사용되어야 함

참고: 이것이 취업을 위한 코딩 테스트다 with 파이썬 (취업과 이직을 결정하는 알고리즘 인터뷰 완벽 가이드), 유튜브 강의 영상

0개의 댓글