CS/알고리즘 (12) 썸네일형 리스트형 프로그래머스 H-Index - 1 def solution(citations): n = len(citations) h = n while (h > 0): if sum(citations) >= n * h: return h h -= 1 return 0https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이.. [TIL] 20240319 25일차 프로그래머스 안전지대 https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(board): n = len(board) danger_zone = set() for row_idx in range(n): for col_idx in range(n): if board[row_idx][col_idx] == 1: row_start = 0 if row_idx == 0 else -1 row_end = 0 if row_idx == n - 1 e.. [WIL] 20240311 ~ 20240315 5주차 정리 알고리즘의 의의 시간 복잡도, 공간 복잡도 (Big - O Notation) 완전 탐색 그리디 알고리즘 탐색 - 이분 탐색 sort - bubble, insertion, selection, merge, quick recursion (재귀) Stack - 괄호, 미로 Queue DFS, BFS Tree, Graph [TIL] 20240315 23일차 인접 행렬 (adjacency array) 인접 리스트 (adjacency list) 다익스트라 (그리디 탐색 중 하나) [TIL] 20240314 22일차 트리와 그래프 이진 트리 [TIL] 20240313 21일차 BFS [TIL] 20240312 20일차 Queue - 선입선출 - 데이터를 쌓는 과정을 enqueue, 데이터를 빼는 과정을 dequeue 라고 한다. Deque - 양방향에서 자료를 쌓고 뺄 수 있다. 우선순위큐 (Priority Queue) - 우선순위가 가장 높은 자료를 먼저 뺄 수 있는 큐이다. [TIL] 20240311 19일차 정렬 알고리즘 버블 정렬 삽입 정렬 선택 정렬 병합 정렬 퀵 정렬 시간 복잡도 O(n²) O(n²) O(n²) O(nlogn) O(nlogn) 공간 복잡도 O(n) O(n) O(n) O(nlogn) O(nlogn) 버블 정렬, 삽입 정렬, 선택 정렬은 반복문을 2번 돌려서 정렬을 수행한다. -> 시간 복잡도로 제곱 형태가 나오게 된다. 리스트 안에서 요소들의 교환만 일어나기 때문에, 공간 복잡도는 n으로 표현된다. 반면 병합 정렬, 퀵 정렬은 반으로 쪼개거나 피벗을 두고 쪼개서 정렬하고 다시 합치는 과정을 거치기 때문에 쪼개는 과정이 log로, 정렬 과정이 n으로 표현된다. 리스트를 분해했다가 다시 병합하기 때문에 공간 복잡도에 log가 추가로 붙게 된다. 구현 코드 # [버블 정렬] def bubble.. 이전 1 2 다음