알고리즘

    [백준] 1038 감소하는 수 파이썬

    문제 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다. 입력 첫째 줄에 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 N번째 감소하는 수를 출력한다. https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어,..

    그래프 알고리즘 정리 - 파이썬

    그래프 알고리즘 분류 그래프는 최소신장트리와 최단거리 문제로 나눌 수 있다. 각기 사용되는 알고리즘이 다르다. MST (최소신장트리) 크루스칼 - 간선기준 가장 작은것부터 연결, 음의 간선 가능 프림 - 정점기준 정점에 연결된 가장 작은 간선으로 연결, 음의 간선 가능 간선 개수가 적으면 크루스칼, 정점 개수가 적으면 프림 적용 최단경로 다익스트라 (우선순위큐 heapq 사용, 단일 정점 최단경로) 벨만-포드 (음의 가중치, 경로 추적 가능) 플로이드 와샬 (음의 가중치, 3중포문, 모든 정점 사이 최단거리) shortest path faster algorithm 크루스칼 간선을 정렬하여 가중치가 작은 간선부터 연결 사이클이 발생하면 연결하지 않음 O(E * log(E)) 프림 한 정점의 간선 중 가중치..