[2004] 조합 0의 개수
·
Coding Test/Math
2004번: 조합 0의 개수 첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다. www.acmicpc.net 분석 조합 = nCm = n!/(m!*(n-m)!) 조합을 구해서 답을 내는 것이 아닌 조합 내의 0의 개수를 구하는 문제 끝자리가 0이라는 것은 10의 배수 10의 개수 = 2의 개수와 5의 개수 중 작은 것의 개수 (2와 5가 짝을 이뤄 10이되기 때문) n!가 가지고 있는 2의 개수 - m!이 가지고 있는 2의 개수 - (n-m)!이 가지고 있는 2의 개수 n!가 가지고 있는 5의 개수 - m!이 가지고 있는 5의 개수 - (n-m)!이 가지고 있는 5의 개수 중에 작은 수 풀이 """ n,m
[1057] 토너먼트
·
Coding Test/Math
1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 풀이 """ N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 한다. 만약 그 라운드의 참가자가 홀수명이라면, 마지막 번호를 가진 참가자는 다음 라운드로 자동 진출한다. 번호를 다시 배정받은 후에 한 명만 남을 때까지 라운드를 계속 한다. 일단 김지민과 임한수는 서로 대결하기 전까지 항상 이긴다고 가정한다. 1라운드에서 김지민의 번호와 임한수의 번호가 주어질 때, 과연 김지민과 임한수가 몇 라운드에서 대결하는지 출력 만약..
[1038] 감소하는 수 (백트래킹, 조합, 재귀)
·
Coding Test/Math
1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net 분석 숫자를 덧붙이는 방법으로 한자리, 두자리, 세자리,... 의 감소하는 수 리스트 생성 재귀 n = int(input()) nums = [] def add(idx, num): # 자리수에 따라 증가 if idx == 1: nums.append(num) else: for i in range(num % 10): # 앞자리보다 작은 숫자들만 이어붙이기 add(idx-1, num*10 + i) for i in range(1, 11): for j in ..
[1476] 날짜계산 (백트래킹)
·
Coding Test/Math
1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 풀이 """ 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다. 1년이 준규가 사는 나라에서 1 1 1일때, 준규가 사는 나라에서 E S..
[1193] 분수찾기
·
Coding Test/Math
1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 분석 첫행 번호 나열 : 1,2,4,7,11,... 등차수열 ➔ 리스트 생성 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, ... ➔ 짝수일 때와 홀수일 때로 구분 풀이 """ 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. 1/1 - 1/2 - 2/1 - 3/1 - 2/2 - 1/3 - 1/4 - 2/3 - 3/2 - 4/1 - 5/1 - 4/2 - 3/3 - 2/4 X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 1 ≤ X ≤ 10,000,000 """ ..
[4948] 베르트랑 공준 (소수의 개수)
·
Coding Test/Math
4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 분석 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다 자기자신 포함하지 않음 [1929] 소수 구하기 (에라토스테네스 방식, 2부터 배수 제거) 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 분석 1 ≤ M ≤ N ≤ 1,000,000 karla.tis..