sparta TIL

24.04.26 TIL

hr7 2024. 4. 26. 11:33

 

 우선순위        연산자 유형                     기호

21 그룹(괄호) (...)
...    
17 논리 NOT ! ...
17 typeof typeof ...
16 거듭제곱 ... ** ...
15 곱셈 ... * ...
15 나눗셈 ... / ...
15 나머지 ... % ...
14 덧셈 ... + ...
14 뺄셈 ... - ...
...    
12 미만 ... < ...
12 이하 ... <= ...
12 초과 ... > ...
12 이상 ... >= ...
11 동등 ... == ...
11 부등 ... != ...
11 일치 ... === ...
11 불일치 ... !== ...
...    
6 논리 AND ... && ...
5 논리 OR ... II ...
...    
3 할당 ... = ...

 


[스파르타코딩클럽

알고리즘 강의 - 3일차

시간 복잡도

   프로그램의 수행 성능을 최악의 경우를 가정하여 정량화하는 방법

   시간 복잡도를 알지 못하면 내가 알고리즘을 고안해도 이 방법이 정말로 유용한지 판단하기 힘들어요!

∙ 공간 복잡도는 시간 복잡도에 비해서 크게 중요하지는 않지만, 공간도 최적화하면 당연히 좋습니다. 하지만 최적화가 덜 되어있다고 해도 당장은 프로그램을 돌리는 컴퓨팅 리소스의 성능을 올리면 해결이 되어서 시간 복잡도에 비해서는 중요도가 높지 않아요 → 물론 나중엔 코드로 최적화를 해서 비용을 절감해야 좋은 개발자겠죠?

 알고리즘에서 자주 쓰이는 자료구조들에 대해서 알아볼것 : 배열, 링크드리스트

▶︎ 시간 복잡도

정의

∙ 시간 복잡도는 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킨다. 컴퓨터과학에서 알고리즘의 시간복잡도는 입력을 나타내는 문자열 길이의 함수로서 작동하는 알고리즘을 취해 시간을 정량화하는 것


▶︎ 공간 복잡도

 시간 복잡도와는 다르게 공간 복잡도는 문제를 해결하는데에 대한 공간과의 상관관계

∙ N개의 입력이 주어지면 공간을 얼마나 쓰는지 나타내는 것

 

▸ 배열

배열에서 할 수 있는 대표적인 기능

∙ 조회

      - O(1)의 조회시간을 가진다는 매우 큰 장점이 있어요!

      - 여기서 O(1)이란 무조건 한 번에 상수적으로 값을 조회를 할 수 있다는 얘기에요!

        왜냐하면 인덱스 값을 받으면 해당하는 배열의 값을 바로 리턴하니까요!

∙ 삽입 & 삭제

      - 배열 끝에서 추가 및 삭제는 O(1)이에요!

      - 배열 끝이 아닌 다른 곳에서 원소를 삽입 혹은 삭제 할 경우에는 O(n)이에요!

 정렬

   정렬의 경우엔 어떤 정렬 알고리즘을 사용하느냐에 따라 시간 복잡도가 다 다르게 나와요!

 검색

   - 일반적으로는 O(N)이에요! 첫 원소부터 끝 원소까지 다 보니까요!

   - 하지만, 정렬이 되어있는 배열이면 O(log N)이 가능해요! 이것은 나중에 배우게 되실거에요!

 

▸ 링크드리스트 (유동적으로 연결고리를 떼었다가 붙였다가 할 수 있는 자료구조)

 


알고리즘 코드카타

Math.floor랑 parseInt말고 '소수점이하는 다 버린다'는 메소드가 있겠지?싶었는데 -> Math.trunc !!

 

각도기문제 다른사람풀이 중