일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 순서대로방문하기
- 수영대회결승전
- 코드트리빵
- dfs
- 조합
- 이진탐색
- ICER
- BFS
- DP
- 마법의숲탐색
- 코드트리
- 슈퍼컴퓨터클러스터
- 시뮬레이션
- 포탑부수기
- ARM
- DenseDepth
- Calibration
- 루돌프의반란
- 구현
- ros
- 마이크로프로세서
- 소프티어
- 백준
- 3Dreconstruction
- 삼성기출
- 나무박멸
- 왕실의기사대결
- ISER
- 토끼와 경주
- 싸움땅
- Today
- Total
목록알고리즘 (44)
from palette import colorful_colors
참고서적: 이것이 취업을 위한 코딩테스트다 with python - 나동빈 up down 게임처럼 탐색범위를 반으로 쪼개면서 탐색하는 알고리즘. 따라서 시간복잡도는 O(logN)이다. 배열 내부 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘이다. 처리해야 할 데이터 개수나 값이 1000만이상처럼 무척 높으면 이진탐색과 같이 O(logN)의 속도를 내는 알고리즘을 떠올려야 문제를 풀 수 있는 경우가 많다. # 이진 탐색 구현 def binary_search(array, target, start, end): if start > end: return None # 아무런 값을 반환하지 않고 종료 mid = (start + end) // 2 # 찾은경우 중간점 인덱스 반환 if array[mid] == ta..
참고서적: 이것이 취업을 위한 코딩테스트다 with python - 나동빈 버블정렬, 선택정렬, 삽입정렬, 퀵정렬, 계수정렬, 파이썬 기본 정렬 함수(sort, sorted) 코드 첨부 0. 정렬 문제풀이 방법 - 정렬 라이브러리로 풀 수 있는 문제(sort, sorted): 정렬 라이브러리 사용방법 숙지하기 - 정렬 알고리즘의 원리에 대해 물어보는 문제: 선택 정렬, 삽입 정렬, 퀵 정렬 등의 원리를 알고 있어야함 - 더 빠른 정렬이 필요한 문제: 퀵 정렬 기반으로도 해결이 불가능할때, 계수 정렬 등의 더 빠른 알고리즘을 이용하거나 구조적으로 개선하기 예시: 문제에서 리스트의 최대 원소가 100000처럼 크게 주어졌을땐 O(NlogN)인 정렬 라이브러리나 퀵 정렬을 사용한다. 1. Bubble Sort..
참고서적: 이것이 취업을 위한 코딩테스트다 with python - 나동빈 1. 그래프 표현 방법 - 인접 행렬(Adjacency Matrix): 2차원 배열로 그래프 관계 표현 - 인접 리스트(Adjacency List): 리스트로 그래프 관계 표현 2. DFS 구현 # DFS 함수 정의하기 def dfs(graph, v, visited): # 1. 현재 노드 방문 처리하기. visited[v] = True print("visited node:",v) # 2. 현재 노드와 연결된 다른 노드 재귀적으로 방문하기. for i in graph[v]: if not visited[i]: dfs(graph, i, visited) # 확인용 코드 (이 밑의 코드는 없어도 무방) # 3. 모두 방문했다면 해당 dfs..
1. 입출력 한 줄에 여러개 입력 받기: map 함수와 input의 split을 이용하고, list로 map을 묶어준다. # 예시: 1 2 4 3 5 를 list로 입력받고 정렬하고 싶을때: number = list(map(int, input().split())) number.sort() 여러줄에 여러개 입력받기 (List Comprehension 활용): comprehension과 list로 map을 묶어준다. # 예시: 라인을 받을 횟수 n을 입력받고 라인마다 push 1 ,.... 이런식으로 여러줄에 여러개가 있을때: n = int(input()) command = [list(map(str, input().split())) for _ in range(n)] for c in command: # c[0..