본문 바로가기

Algorithms4

enumerate e.g. t = [1, 3, 7, 10] for e in enumerate(t): print(e) #튜플 형대로 반환 for i, e in enumerate(t): print(i, e) 출력 (0,1) (1,3) (2,7) (3,10)0 1 1 3 2 7 3 10 2022. 11. 2.
최대공약수, 최소공배수 w. 유클리드 호제법 최대공약수 GCD(greatest common divisor) 유클리드 호제법: x와 y의 최대공약수 == y와 r의 최대공약수 (r = x%y) e.g. x = 10, y = 12 x y r 10 % 12 == 10 y r 12 % 10 == 2 반복해서 10 % 2 == 0 r이 0이 될 때의 y가 최대공약수, 따라서 2가 최대공약수 코드 def GCD(x,y): while(y): x, y = y, x%y return x 내장함수 이용 import math math.gcd(x,y) 최소공배수 LCM(least common multiple) (x*y) / (x와 y의 최대공약수) 코드 def LCM(x, y): result = (x*y)//GCD(x,y) return result 내장함수 이용 impo.. 2022. 11. 2.
[이코테][그리디] 2. 큰 수의 법칙 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙. 단, 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없음 입력 조건 첫째 줄에 N(2 2022. 3. 22.
[이코테][그리디] 1. 당장 좋은 것만 선택하는 그리디 # 거스름돈 500원, 100원, 50원, 10원 동전이 무한히 존재할 떄, 거슬러 줘야 할 동전의 최소 개수는? n = 1260 count = 0 # 큰 단위의 화폐부터 차례대로 확인 coin_types = [500, 100, 50, 10] for coin in coin_types: count += n // coin # 해당 화폐로 거슬러 줄 수 있는 동전의 개수 세기 n %= coin print(count) 2022. 3. 22.