백준 2458. 키 순서
·
백준
https://www.acmicpc.net/problem/24581. 플로이드-워셜 알고리즘 풀이import sysN, M = map(int, input().split())height = [[0 for _ in range(N+1)] for _ in range(N+1)]for _ in range(M): tall, short = map(int, sys.stdin.readline().split()) height[tall][short] = 1for k in range(1, N+1): for i in range(1, N+1): for j in range(1, N+1): if height[i][j] == 1 or (height[i][k] == 1 and height[..
4. 자료구조
·
Cs
1️⃣ 복잡도- 시간 복잡도: 알고리즘의 실행 시간을 정량화하는 것- 공간 복잡도: 알고리즘 실행시 필요한 메모리 사용량을 정량화하는 것- 빅오 표기법: 입력 값에 대한 수식에서 최고차항을 기준으로 알고리즘이 수행되는 최악의 시간 복잡도를 표현2️⃣선형 자료구조와 비선형 자료구조의 차이- 선형 자료구조: 연속적으로 데이터가 나열되는 자료구조. 1:1 연결- 비선형 자료구조: 하나의 데이터 뒤에 n개의 데이터가 이어질 수 있는 자료구조. 1:N, N:N 연결3️⃣ 선형 자료구조 - 배열- 정해진 크기만큼 데이터가 일렬로 저장되는 정적 자료구조- 요소: 배열의 각 데이터 / 인덱스: 데이터를 가리키는 번호- 시간 복잡도  (1) 검색: O(n)  (2) 삽입: O(n) (but 여유공간이 있고, 맨 마지막 ..
백준 2660. 회장뽑기
·
백준
https://www.acmicpc.net/problem/2660플로이드-워셜 알고리즘 사용 풀이n = int(input())INF = float('inf')dp = [[INF]*(n+1) for _ in range(n+1)]for i in range(1, n+1): dp[i][i] = 0 # 자기자신과의 거리는 0while True: a, b = map(int, input().split()) if a == -1 and b == -1: break dp[a][b] = 1 # 무방향 dp[b][a] = 1for k in range(1, n+1): for i in range(1, n+1): for j in range(1, n+1): ..
99클럽 코테 스터디 3일차 TIL + 다익스트라 알고리즘
·
99클럽 코테 스터디
❇️오늘의 학습 키워드 : 다익스트라 알고리즘 다익스트라 알고리즘?- 가중치가 있는 그래프에서 한 정점에서 다른 모든 정점까지의 최단 경로를 찾는 알고리즘다익스트라 알고리즘의 동작 원리    (1) 출발 지점(시작 노드)의 거리를 0으로, 나머지 노드들의 거리는 무한대(INF)로 설정    (2) 우선순위 큐를 활용해 현재 가장 짧은 거리의 노드를 선택하고, 해당 노드를 중심으로 주변 노드들의 거리 갱신    (3) 모든 노드를 방문할 때까지 반복다익스트라라 알고리즘의 특징- 우선순위 큐 사용시 시간복잡도는 O(ElogV) - 음수 가중치가 없는 그래프에서 가장 효율적으로 작동다익스트라 알고리즘에서 우선순위 큐 기능을 활용하는 이유?- 최소 힙 자료구조로, 가장 작은 값이 항상 맨 앞에 오도록 정렬된 큐..
3. 데이터베이스
·
Cs
1️⃣ 데이터베이스의 구성요소    (1) 개체(엔터티): 데이터로 표현하려는 대상. 하나 이상의 속성으로 구성됨    (2) 속성: 개체의 특성과 상태를 나타냄. 데이터베이스를 구성하는 가장 작은 논리적 단위    (3) 관계: 개체 간에 어떤 관련이 있는지 나타냄- 스키마: 데이터의 구조와 표현 방식, 제약 조건을 정의    (1) 내부 스키마: 사용자 측면에서 데이터베이스의 전체 구조    (2) 개념 스키마: 데이터베이스의 전체 구조    (3) 외부 스키마: 물리적 저장장치 측면에서 데이터베이스의 전체 구조2️⃣ 관계형 데이터베이스(RDB)- 데이터가 2차원 테이블에 저장되며 데이터의 구조와 데이터 간 종속성 등을 알 수 있음- 스키마(ERD, 개체-관계 다이어그램)를 바탕으로 데이터베이스의 구..
백준 1753. 최단경로
·
백준
https://www.acmicpc.net/problem/1753import heapqimport sysinput = sys.stdin.readlinev, e = map(int,input().split()) # 정점개수 / 간선개수start = int(input()) # 시작 정점의 번호# 시작점 자신은 0, 경로가 없으면 INF 출력links = [[] for _ in range(v+1)] # 연결된 간선들 정보 담기dist = [ 1e9 for _ in range(v+1) ] # 시작점부터 indx간선까지 거리 정보for _ in range(e): # 각 간선들에 가중치 포함한 정보 담기 a, b, c = map(int,input().split()) links[a].append([b,c])..