본문 바로가기
반응형

전체 글87

정렬 알고리즘_삽입 정렬 array = [7,5,9,0,3,1,6,2,4,8] for i in range(1,len(array)): # 첫 번째 원소는 이미 정렬된 상태로 2번째 원소부터 시작 for j in range(i,0,-1): # 인덱스 i부터 1까지 감소하며 반복되는 문법 if array[j] < array[j-1]: # 왼쪽에 숫자가 자기 보다 작다면 왼쪽으로 이동 array[j] , array[j-1] = array[j-1],array[j] else: # 자기보다 작은 데이터를 만나면 그 위치에서 멈춤 break print(array) 2022. 12. 29.
정렬 알고리즘 _ 선택정렬 array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i # 가장 작은 원소 for j in range(i + 1, len(array)): if array[j] < array[min_index]: min_index = j array[i], array[min_index] = array[min_index], array[i]#스와프 print(array) 2022. 12. 29.
[백준/Python] 1260번 : DFS와 BFS https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net from collections import deque import sys # 정점의 개수 , 간선의 개수 , 시작 정점 입력 받기 read = sys.stdin.readline n, m, v = map(int, read().split()) # 2차원 리스트 graph graph = [[] * n for _ in range(n + 1)] # 간선이 연결하는 두 .. 2022. 12. 29.
[백준 / Python] DFS_2606번: 바이러스 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net # 컴퓨터의 수 from pprint import pprint n = int(input()) # 연결되어 있는 컴퓨터 쌍의 수 m = int(input()) graph = [[] * n for _ in range(n + 1)] # 리스트 생성 # [ [], # 1번노드 [2, 5], # 2번노드 [1, 3, 5], # 3번노드 [2], # 4번노드 [7], # 5번노드 [1, 2, 6], # 6번노드 .. 2022. 12. 29.
[BFS] 24445번 : 알고리즘 수업 - 너비 우선 탐색 2 https://www.acmicpc.net/problem/24445 24445번: 알고리즘 수업 - 너비 우선 탐색 2 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net from collections import deque import sys sys.setrecursionlimit(10 ** 9) input1 = sys.stdin.readline # 차례대로 정점의 수 , 간선의 수 , 시작 정점. n, m, r = map(int, input1().split()) graph = [[] for.. 2022. 12. 27.
[BFS] 백준 24444번 https://www.acmicpc.net/problem/24444 24444번: 알고리즘 수업 - 너비 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양방 www.acmicpc.net 제출 코드 from collections import deque import sys sys.setrecursionlimit(10 ** 9) input1 = sys.stdin.readline # 차례대로 정점의 수 , 간선의 수 , 시작 정점. n, m, r = map(int, input1().split()) graph = .. 2022. 12. 27.
반응형