ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1. 자료형
    [이것이 취업을 위한 코딩테스트다 with 파이썬]/코딩 테스트를 위한 파이썬 문법 2022. 10. 24. 15:50

    *이것이 취업을 위한 코딩 테스트다 with 파이썬(한빛미디어, 나동빈 링크)을 공부하며 정리한 내용입니다.*

     

    수 자료형

    • 정수형: 정수를 다룬 자료형(양의 정수, 음의 정수, 0)
    • 실수형: 소수점 아래의 데이터를 포함하는 수 자료형(소수점 붙인 수 대입할 경우)
    유효숫자 e 지수승 = 유효숫자 * 10의 지수승
    1e9 = 10의 9제곱 = 1,000,000,000
    3954e-3 = 3.954
    • IEEE754 표준에서는 실수형 저장 위해 4바이트 / 8바이트라는 고정된 크기의 메모리 할당 → 컴퓨터는 실수를 정확히 표현하지 못한다.
    • 실수형 데이터 비교할 때는 round(실수형 데이터, 반올림하고자 하는 위치 -1) 함수로 소수점 다섯 번째 자리에서 반올림한 결과가 같으면 정답으로 인정
    a = 0.3 + 0.6
    print(round(a, 4))

    리스트 / 배열 / 테이블 자료형

    • 여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용(내부적으로 배열 채택, 연결리스트 자료구조 기능 포함)
    • 리스트 만들기
    # 빈 리스트 선언 방법
    a = list()
    a = []
    
    # 크기가 N인 1차원 리스트 초기화
    n = 10
    a = [0] * n
    print(a)
    
    # 리스트 컴프리헨션: 특정 크기의 2차원 리스트 초기화할 경우 반드시!
    # 0부터 19까지의 수 중에서 홀수만 포함하는 리스트
    array = [i for i in range(20) if i % 2 == 1] 
    
    # N * M 크기의 2차원 리스트 초기화
    n = 3
    m = 4
    array = [[0] * m for _ in range(n)]
    • 리스트 관련 기타 메서드
    # 리스트에 원소 삽입: 시간복잡도 O(1)
    a.append(2)
    
    # 정렬: 시간복잡도 O(NlogN)
    a.sort()
    a.sort(reverse = True)
    
    # 리스트 원소 뒤집기: 시간복잡도 O(N)
    a.reverse()
    
    # 특정 인덱스에 데이터 추가: 시간복잡도 O(N)
    a.insert(2, 3)
    
     # 특정 값인 데이터 개수 세기: 시간복잡도 O(N)
     a.count(3)
     
     # 특정 값 데이터 삭제: 시간복잡도 O(N)
     a.remove(1)
     # 특정한 값의 원소를 모두 제거할 때
    a = [1, 2, 3, 4, 5, 5, 5]
    remove_set = {3, 5}
    
    # remove_set에 포함되지 않은 값만을 저장
    result = [i for i in a if i not in remove_set]

    문자열 자료형

    a = 'Hello'
    b = 'World'
    
    print(a + '' + b)
    print(a * 3)

    튜플 자료형

    • 한 번 선언된 값 변경 불가
    • 리스트에 비해 상대적으로 공간 효율적, 일반적으로 각 원소의 성질이 서로 다를 때
    • 그래프 알고리즘 구현 시 자주 사용: 다익스트라 최단 경로 알고리즘 (비용, 노드 번호)의 형태로 함께 튜플로 묶어서 관리
    a = (1, 2, 3, 4, 5)

    사전 자료형

    • 키와 값의 쌍을 데이터로 가지는 자료형
    • 내부적으로 해시 테이블 이용 → 데이터의 검색 및 수정 O(1)
    data = dict()
    data['사과'] = 'Apple'
    data['바나나'] = 'Banana'
    data['코코넛'] = 'Coconut'
    
    # 사전 자료형에 특정한 원소가 있는지 검사: 원소 in 사전
    if '사과' in data:
    	print("'사과'를 키로 가지는 데이터가 존재합니다.")
        
    # 키 데이터만 담은 리스트
    key_list = data.keys()
    
    # 값 데이터만 담은 리스트
    value_list = data.values()
    
    # 각 키에 따른 값을 하나씩 출력
    for key in key_list:
    	print(data[key])

    집합 자료형

    • 중복을 허용하지 않는다.
    • 순서가 없다.
    • 특정 원소가 존재하는지를 검사하는 연산 O(1)
    • '특정한 데이터가 이미 등장한 적이 있는지 여부' 체크할 때 효과적
    # 집합 자료형 초기화 방법 1
    data = set([1, 1, 2, 3, 4, 4, 5])
    print(data)
    
    # 집합 자료형 초기화 방법 2
    data = {1, 1, 2, 3, 4, 4, 5}
    print(data)
    print(a | b) # 합집합
    print(a & b) # 교집합
    print(a - b) # 차집합
    
    # 새로운 원소 추가 O(1)
    a.add(4)
    
    # 새로운 원소 여러 개 추가
    a.update([5, 6])
    
    # 특정한 값을 갖는 원소 삭제 O(1)
    data.remove(3)

     

Designed by Tistory.