목록전체 글 (601)
sm 기술 블로그
import java.util.*; import java.io.*; class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] sBits = br.readLine().split(" "); int N = Integer.parseInt(sBits[0]); int A = Integer.parseInt(sBits[0]); int K = Integer.parseInt(sBits[1]); int B = Integer.parseInt(sBits[1]); for(int i=1;i
import sys input = sys.stdin.readline N, K = map(int, input().split()) A, B = N, K for i in range(1, B): N *= (A-i) K *= (B-i) if(K == 0): K = N print(int(N/K)) 문제요약 이항계수를 구하라. 설명 이항계수를 푸는방법은 위와같이 반복문이 아닌 재귀함수를 사용해서도 풀 수 있다. 일단 위 방법은 예를들어 10 과 5가 들어왔다고 해보자. 다음과 같이 값이 들어올 것이다. 이를 정리하면, 다음과 같이 나올 것이다. 즉, N과 K는 K번 1씩 감소하고 둘을 나누면 된다. 만약, K가 0이라면, 다음과 같으므로 1이 나오게 된다.
유클리드 호제법 두개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘이다. 작동 방식 78696과 19332의 최대공약수를 구한다고 해보자. 78696 = 19332×4 + 1368 19332 = 1368×14 + 180 1368 = 180×7 + 108 180 = 108×1 + 72 108 = 72×1 + 36 72 = 36×2 + 0 나머지 정리를 통해 다음과 같이 표시할 수 있다. 나머지 정리란 A(원래 수) = B(나누는 수) * C(몫) + R (나머지) 로 다시 말해 78696 = 19332×4 + 1368 는 78696을 19332로 나누면 몫은 4이고 나머지는 1368이라는 이야기이다. 본론으로 돌..
import java.util.*; import java.io.*; class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); ArrayList ringList = new ArrayList(); br.readLine(); String[] sBits = br.readLine().split(" "); int ringFirst = Integer.parseInt(sBits[0]); for (int i = 1; i < sBits.length;..