Code/Algorithm 17

[정수론] 소수 구하기

Do it! 알고리즘 코딩 테스트 - 파이썬 편 (김종관) 책을 이용하여 알고리즘 공부 중입니다 😃 https://www.youtube.com/watch?v=R1vl8FNAC6Q&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=24 소수 1과 자기 자신만을 약수로 가지는 수 핵심 이론: 에라토스테네스의 체 구하고자 하는 소수의 범위만큼 1차원 리스트 (2부터 시작) 를 생성한다. 첫 번째 수(2)부터 시작하여 선택된 수의 배수를 지운다. 리스트의 끝까지 2번을 반복하면 리스트에 남아 있는 수는 소수가 된다. 시간 복잡도 이중 for문을 사용하므로 O(n^2)라고 판단할 수 있다. 그러나 2번 과정을 진행하면서 숫자가 계속 지워지기 때문에, 최적화의 정도에 따라 다르겠지만..

Code/Algorithm 2023.10.24

[그리디] 그리디 알고리즘

Do it! 알고리즘 코딩 테스트 - 파이썬 편 (김종관) 책을 이용하여 알고리즘 공부 중입니다 😃 https://www.youtube.com/watch?v=8V2zw6Qxarc&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=23 그리디 알고리즘 현재 상태에서 보는 선택지 중 최선의 선택지가 전체 선택지 중 최선의 선택지라고 가정하는 알고리즘 최적의 해를 보장하지는 않음 해 선택: 현재 상태에서 가장 최선이라고 생각되는 해를 선택한다. 적절성 검사: 현재 선택한 해가 전체 문제의 제약 조건에 벗어나지 않는지 검사한다. 해 검사: 현재까지 선택한 해 집합이 전체 문제를 해결할 수 있는지 검사한다. 전체 문제를 해결하지 못한다면 1로 돌아가 같은 과정을 반복한다.

Code/Algorithm 2023.10.07

[탐색] 이진 탐색

Do it! 알고리즘 코딩 테스트 - 파이썬 편 (김종관) 책을 이용하여 알고리즘 공부 중입니다 😃 https://www.youtube.com/watch?v=1vZijMmhGNw&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=22 이진 탐색(Binary Serch) 데이터가 정렬되어 있는 상태에서 원하는 값을 찾아내는 알고리즘 대상 데이터의 중앙값과 찾고자 하는 값을 비교해 데이터의 크기를 절반씩 줄이면서 대상을 찾음 기능 특징 시간 복잡도 타겟 데이터 탐색 중앙값 비교를 통한 대상 축소 방식 O(logn) 정렬 데이터에서 원하는 데이터를 탐색할 때 사용하는 가장 일반적인 알고리즘 구현 및 원리가 비교적 간단하기때문에 부분 문제로 요구하는 영역임 현재 데이터셋의 중앙값..

Code/Algorithm 2023.10.05

[탐색] 너비 우선 탐색, BFS(Breadth First Search)

Do it! 알고리즘 코딩 테스트 - 파이썬 편 (김종관) 책을 이용하여 알고리즘 공부 중입니다 😃 https://www.youtube.com/watch?v=Cs8DaupoSPM&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=21 너비 우선 탐색, BFS(Breadth First Serch) 그래프 완전 탐색 기법 중 하나 시작 노드를 기준으로 가까운 노드를 먼저 방문하면서 탐색하는 알고리즘 기능 특징 시간 복잡도(노드 수: V, 엣지 수: E) 그래프 완전 탐색 - FIFO 탐색 - Queue 자료구조 이용 O(V + E) 선입선출 방식으로 탐색하므로 큐를 이용해 구현함 탐색 시작 노드와 가까운 노드를 우선하여 탐새갛므로 목표 노드에 도착하는 경로가 여러 개일 때 최..

Code/Algorithm 2023.10.04

[탐색] 깊이 우선 탐색, DFS(Depth First Serch)

Do it! 알고리즘 코딩 테스트 - 파이썬 편 (김종관) 책을 이용하여 알고리즘 공부 중입니다 😃 https://www.youtube.com/watch?v=lFtQnOhKnr0&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=20 깊이 우선 탐색, DFS(Depth First Serch) 그래프 완전 탐색 기법 중 하나 그래프의 시작 노드에서 출발하여 탐색할 한 쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 수행하는 알고리즘 기능 특징 시간 복잡도(노드 수: V, 엣지 수: E) 그래프 완전 탐색 - 재귀 함수로 구현 - 스택 자료구조 이용 O(V + E) 실제 구현 시 재귀 함수를 이용하므로 스택 오버플로우에 유의해야 함 단절점..

Code/Algorithm 2023.10.02

[정렬] 기수 정렬

Do it! 알고리즘 코딩 테스트 - 파이썬 편 (김종관) 책을 이용하여 알고리즘 공부 중입니다 😃 https://www.youtube.com/watch?v=6tz6oD6ZFvM&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=19 정렬 알고리즘 정의 버블 bubble 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식 선택 selection 대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식 삽입 insertion 대상을 선택해 정렬돈 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식 퀵 quick pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식 병합 merge 이미 정렬된 부분 집합들을 효율적으로..

Code/Algorithm 2023.10.01

[정렬] 병합 정렬

Do it! 알고리즘 코딩 테스트 - 파이썬 편 (김종관) 책을 이용하여 알고리즘 공부 중입니다 😃 https://www.youtube.com/watch?v=KNKj8QSbRXE&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=18 정렬 알고리즘 정의 버블 bubble 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식 선택 selection 대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식 삽입 insertion 대상을 선택해 정렬돈 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식 퀵 quick pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식 병합 merge 이미 정렬된 부분 집합들을 효율적으로..

Code/Algorithm 2023.09.30

[정렬] 퀵 정렬

Do it! 알고리즘 코딩 테스트 - 파이썬 편 (김종관) 책을 이용하여 알고리즘 공부 중입니다 😃 https://www.youtube.com/watch?v=a3xZAVAPA-s&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=17 정렬 알고리즘 정의 버블 bubble 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식 선택 selection 대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식 삽입 insertion 대상을 선택해 정렬돈 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식 퀵 quick pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식 병합 merge 이미 정렬된 부분 집합들을 효율적으로..

Code/Algorithm 2023.09.29

[정렬] 삽입 정렬

Do it! 알고리즘 코딩 테스트 - 파이썬 편 (김종관) 책을 이용하여 알고리즘 공부 중입니다 😃 https://www.youtube.com/watch?v=w_O4ybqu9Ro&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=18 정렬 알고리즘 정의 버블 bubble 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식 선택 selection 대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식 삽입 insertion 대상을 선택해 정렬돈 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식 퀵 quick pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식 병합 merge 이미 정렬된 부분 집합들을 효율적으로..

Code/Algorithm 2023.09.28

[정렬] 선택 정렬

Do it! 알고리즘 코딩 테스트 - 파이썬 편 (김종관) 책을 이용하여 알고리즘 공부 중입니다 😃 https://www.youtube.com/watch?v=lM6BFazUHjA&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=15 정렬 알고리즘 정의 버블 bubble 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식 선택 selection 대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식 삽입 insertion 대상을 선택해 정렬돈 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식 퀵 quick pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식 병합 merge 이미 정렬된 부분 집합들을 효율적으로..

Code/Algorithm 2023.09.28