코딩 테스트 합격자 되기 1회독 스터디 내용입니다.
코딩테스트 합격자 되기 - 05 배열 : 네이버 카페 (naver.com)
배열
인덱스와 값을 일대일 대응해 관리하는 자료구조
차원과는 무관하게 메모리에 연속 할당됨
배열 선언 방법
1차원
리스트 생성자를 사용하는 방법
arr = [0 for _ in range(6)] # [0, 0, 0, 0, 0, 0]
리스트 컴프리헨션을 활용하는 방법
arr = [0 for _ in range(6)] # [0, 0, 0, 0, 0, 0]
2차원
리스트 생성자를 사용하는 방법
arr = [[1, 2, 3], [4, 5, 6]] # ➊ 2행 3열 2차원 배열을 표현하는 리스트 선언
리스트 컴프리헨션을 활용하는 방법
# 크기가 3 * 4인 리스트를 선언하는 예
arr = [[i]*4 for i in range(3)] # [[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2]]
⭐배열을 선택할 때 고려할 점
- 할당할 수 있는 메모리 크기
- 데이터가 너무 많으면 런타임 에러 발생
- 1차원은 1000만개, 2차원은 3000 * 3000 크기를 최대로 생
- 중간에 데이터 삽입이 많은지
- 배열은 선형 자료구조
- 중간이나 처음에 데이터를 빈번이 삽입하면 시간 복잡도가 높아짐(마지막에 넣을때는 한번에 가능
리스트 컴프리헨션으로 데이터에 특정 연산 적
리스트 내 모든 데이터 제곱
numbers = [1, 2, 3, 4, 5]
squares = [num**2 for num in numbers] # [1, 4, 9, 16, 25]