Cohe
코딩 테스트 합격자 되기 - 2주차 본문
728x90
반응형
05 배열
공부한 내용
- 배열 기초
- 인덱스와 값을 일대일 대응하는 자료구조
- 선언 방법
#1. 일반적인 방법
arr = [0, 0, 0, 0, 0, 0] arr = [0] * 6
# 2. 생성자를 사용하는 방법
arr = list(range(6)) # [0, 1, 2, 3, 4, 5]
# 3. 컴프리헨션(comprehension)을 활용하는 방법
arr = [0 for _ in range(6)] # [0, 0, 0, 0, 0, 0]
- 배열과 차원
- 배열은 차원과는 무관하게 메모리에 연속 할당됨!
- 1차원배열 : 간단한 형태
- 2차원배열 : 1차원 배열 확장 형태
# 2차원 배열을 리스트로 표현
arr = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
# arr[2][3]에 저장된 값을 출력
print(arr[2][3]) # 12
# arr[2][3]에 저장된 값을 15로 변경
arr[2][3] = 15
# 변경된 값을 출력
print(arr[2][3]) # 15
# 크기가 3 * 4인 리스트를 선언하는 예
arr = [[i]*4 for i in range(3)] # [[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2]]
- 배열의 효율성
- 시간 복잡도 호가인
- 맨 뒤에 삽입할 경우 : O(1)
- 맨 앞에 삽입할 경우 : O(N)
- 중간에 삽입할 경우 : O(N), 현재 삽입한 데이터 뒤에 있는 데이터 개수만큼 미는 연산을 해야 합니다. 밀어야 하는 데이터 개수가 N개라면 시간 복잡도는 O(N)이겠네요.
- 시간 복잡도 호가인
- 자주 활용하는 리스트 기법
- 리스트에 데이터 추가
- append() 메서드 : list.append(4) -> 맨 끝에 데이터 추가
- 연산자 : my_list = my_list + [4, 5] # [1, 2, 3, 4, 5]
- insert() 메서드 : my_list.insert(2, 9999) # [1, 2, 9999, 3, 4, 5]
- append() 메서드 : list.append(4) -> 맨 끝에 데이터 추가
- 리스트에 데이터 삭제
- pop() 메서드 : popped_element = my_list.pop(2) # 3, 인덱스를 인수로 받아서 삭제함
- remove() 메서드 : my_list.remove(2) , 인수로 값은 값이 처음 등장하는 위치의 데이터 삭제
- 리스트 컴프리헨션
- squares = [num**2 for num in numbers] # [1, 4, 9, 16, 25], 이런식이다!!
- 리스트에 데이터 추가
문제
- 너무 바빠서 문제를 풀지 못했다. 다음주 내외로 추가 예정
모의고사
2. 문제 풀이
실패율
https://school.programmers.co.kr/learn/courses/30/lessons/42889
방문길이
https://school.programmers.co.kr/learn/courses/30/lessons/49994
추가문제
728x90
반응형
'개발 이모저모 > 코딩 테스트 합격자 되기 스터디' 카테고리의 다른 글
코딩테스트 합격자 되기 - 7주차 (0) | 2024.02.17 |
---|---|
코딩 테스트 합격자 되기 - 5주차 (1) | 2024.02.03 |
코딩 테스트 합격자 되기 - 4주차 (1) | 2024.01.27 |
코딩 테스트 합격자 되기 - 3주차 (0) | 2024.01.27 |
코딩 테스트 합격자 되기 - 1주차 (0) | 2024.01.06 |