문제 www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 import sys N = int(input()) stack = [] a = [] def push(X): stack.append(X) def pop(): if not stack: return -1 else: return stack.pop() def size(): return len(stack) # false = 0, true =1 def empty(): if stack: return..
문제 www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 코드 def fac(a): if a==0: return 1 if a==1: return 1 else: return a * fac(a-1) # nCk = n! / ((n-k)! * k!) T = int(input()) for i in range(T): n, m = map(int, input().split()) # m개점중에서 n개를 선택하는 경우의수. mCn print(fac(m) // (fac(m-n) *..
문제 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(k))) 코드설명 이항계수와 조합을 같은 뜻으..
문제 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(16,8) =..