부트캠프(9일차)

성준혁·2022년 11월 10일
0
post-thumbnail

오늘은 부트캠프 9일차이다. 알고리즘 공부를 하는 날이었고 어제 파이썬 나머지 하고 알고리즘을 들어서 같이 벨로그에 적을까 했지만 내용이 섞이는 것 같아서 오늘 카테고리를 나눠서 적는다. 알고리즘이 진짜 어려운 거 같다. 우리가 수학문제 풀 때 공식을 알고 문제에 대입해서 풀고 하는데 코딩테스트는 공식과 이론을 알고있어도 문제에 어떻게 대입하는지 몰라서 어려운 거 같다. 그나마 다행인건 백지 상태에서 공부를 시작해서 오히려 이해가 되는 거 같다.

오늘 배운 것

1-6 시간 복잡도 판단하기

-시간 복잡도란 함수가 수행하는데 얼마나 걸리는지 분석하는 것이다.

1-7 공간 복잡도 판단하기

-입력값과 문제를 해결하는 데 걸리는 공간과의 상관관계를 말한다.
-시간 복잡도나 공간 복잡도에서 상수는 큰 상관이 없지만 계수는 중요하다. 따라서 공간 복잡도보다 시간 복잡도가 더 중요하다.

1-8 점근 표기법

-알고리즘의 성능을 수학적으로 표기하는 방법이다. 알고리즘의 "효용성"을 평가하는 방법이다.

1-9 알고리즘 더 풀어보기

-일단 1차 반복문이 나오면 O(n)이겠구나 생각하자

2-2 배열

-배열은 크기가 정해진 데이터의 공간이고 한 번 정해지면 바꿀 수 없다.
-배열은 각 원소에 즉시 접근 가능하다. array[0]
-원소의 순서는 0부터 시작하고 이를 인덱스라고 부른다.
-배열은 원소를 중간에 삽입/삭제 하려면 모든 원소를 다옮겨야 한다.
-시간 복잡도는 O(n)이다.
-원소를 추가하려면, 새로운 공간을 할당해야 하므로 매우 비효율적인 자료구조이다.

2-2-1 링크드 리스트

-리스트는 크기가 정해지지 않은 데이터의 공간이다.
-리스트는 특정 원소에 접근하려면 연결 고리를 따라 탐색해야 합니다.
-시간 복잡도는 O(n)이다.
-리스트는 원소를 중간에 삽입/삭제 하기 위해서는 앞 뒤의 포인터만 변경하면 된다.

0개의 댓글