Python 최대공약수 / 최소공배수
import math import math a,b = map(int,input().split()) # 최대공약수 (Greatest Common Divisor) print(math.gcd(a,b)) # 최소공배수 (Lowest Common Multiple) print(math.lcm(a,b)) 유클리드 호제법 시간복잡도 O(logN) 2개의 자연수 a,b(a>b)에 대해서 a를 b로 나눈 나머지를 r0이라 하면 a와 b의 최대공약수 == b와 r0의 최대공약수 위 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 최대공약수 def gcd(a,b): while b>0: a,b = b, a%b return a def lcm(a,b): return (a*b)//gcd(a,b)
2022. 9. 22.
[백준] 5014. 스타트링크 - Python
https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 생각 최단 경로를 구하는 것이므로 bfs 코드 from sys import stdin from collections import deque input = stdin.readline F,S,G,U,D = map(int,input().split()) # 총 F층인 건물, S층에서 G층 가기 # 방문 표시 visited = [0]*(F+1) def bfs(now): global visited visited[now]..
2022. 7. 13.