[백준] 11050번 이항 계수1 (Python)
·
알고리즘/백준
문제www.acmicpc.net/problem/11050 11050번: 이항 계수 1첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))www.acmicpc.net 코드# (n) ==> nCk = n! / ((n-k)! * k!) 이항계수와 조합이 같은개념 같다# (k) n , k = map(int,input().split())def fac(a): # k가 입력값으로 0이 들어올 수 있으므로 0에대한 처리도 해줘야한다. if a== 0 : return 1 if a == 1: return 1 else: return a * fac(a-1)print(fac(n) // (fac(n-k) * fac(..
[백준] 2609번 최대공약수와 최소공배수 (Python)
·
알고리즘/백준
문제www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.www.acmicpc.net 코드def gcd(a,b): if b == 0: return a else: return gcd(b, a%b)a,b = map(int,(input().split()))g=gcd(a,b)lcm = g * (a//g) * (b//g)print(g)print(lcm) 코드설명유클리드 호제법은 최대공약수 구하는 공식이다.a,b의 최대공약수는 b와 a%b의 최대공약수와 같다. 즉, GCD(a, b) = GCD(b, a%b)gcd(24,16) => gcd..
[백준] 11399번 ATM (Python)
·
알고리즘/백준
문제www.acmicpc.net/problem/11399 11399번: ATM첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)www.acmicpc.net 코드N = int(input())time = list(map(int, input().split()))time.sort()sum=0for i in range(N): for j in range(i+1): # i가 0~4까지들어오기 때문에 +1을 해줘서 i가 0일떄도 for문이 돌아 가게 하고 j도 4까지 하기 위해 1을 더한 것이다 sum += time[j]print(sum) 코드설명그리디 알고리즘으로 문제를 풀었다.입력값들을..
[백준] 11047번 동전 0 (Python)
·
알고리즘/백준
문제 www.acmicpc.net/problem/11047 11047번: 동전 0첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)www.acmicpc.net 코드N, K = map(int, input().split())d = [int(input()) for _ in range(N)]d.sort(reverse=True)result = 0for i in range(N): if d[i] > K: continue else: result += K // d[i] ..