목록Algorithm (151)
자이의 프로그래밍
문제 정수 B를 0보다 큰 정수인 N으로 곱해 정수 A를 구할 수 있다면 A는 B의 배수이다. 예: 10은 5의 배수이다 (5 * 2 = 10) 10은 10의 배수이다(10 * 1 = 10) 6은 1의 배수이다(1 * 6 = 6) 20은 1, 2, 4, 5, 10, 20의 배수이다. 다른 예: 2와 5의 최소공배수는 10이고, 그 이유는 10은 2와 5 둘 다의 배수이고, 10보다 작은 공배수가 없기 때문이다. 10과 20의 최소공배수는 20이다. 5와 3의 최소공배수는 15이다. 당신은 두 수에 대하여 최소공배수를 구하는 프로그램을 작성 하는 것이 목표이다. 입력 한 줄에 두 자연수 A와 B가 공백으로 분리되어 주어진다. A와 B는 100,000,000(10^8)보다 작다. 참고: 큰 수 입력에 대하여..
문제 N개의 자연수가 주어질 때, 이 자연수들 중에서 k번째로 큰 수를 찾는 프로그램을 작성하시오. 만약 k=1 이라면, 가장 큰 수를 찾으면 된다. 입력 첫 번째 줄에 자연수 N, k가 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ k ≤ 10) 두 번째 줄에 N개의 자연수가 주어진다. 출력 첫 번째 줄에 k번째 수를 출력한다. 예제 입력 10 3 1 5 2 3 8 4 7 3 2 10 예제 출력 7 예제 입력 5 4 5 5 1 2 3 예제 출력 2 ------------------------------------------------------------------------------------------------------------------------------ 문제의 조건을 잘 읽어보니 ..
문제 분자 분모가 모두 자연수인 두 분수의 합 또한 분자 분모가 자연수인 분수로 표현할 수 있다. 두 분수가 주어졌을 때, 그 합을 기약분수의 형태로 구하는 프로그램을 작성하시오. 기약분수란 더 이상 약분되지 않는 분수를 의미한다. 입력 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. 출력 첫째 줄에 구하고자 하는 기약분수의 분자와 분모를 뜻하는 두 개의 자연수를 공백으로 구분하여 순서대로 출력한다. 예제 입력 2 7 3 5 예제 출력 31 35 ---------------------------------------------------------------------------------------------..

*다시 풀기 문제 최홍우는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 2037년이 된 지금, 홍우는 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하는 단점이 있어서, 이전 작동시기에 k광년을 이동하였을 때는 k-1 , k 혹은 k+1 광년만을 다시 이동할 수 있다. 예를 들어, 이 장치를 처음 작동시..
문제 주어진 숫자들 중 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 줄에 걸쳐 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 예제 입력 4 1 3 5 7 예제 출력 3 ------------------------------------------------------------------------------------------------------------------------------ #include using namespace std; int main() { int n; cin >> n; int total = 0; for (int i = 0; i ..
문제 피보나치 수열은 수학에서 아주 유명한 수열이다. 피보나치 수열을 이루는 수들을 피보나치 수라고 한다. 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 F(n)= F(n-1) + F(n-2), (n>=2)가 된다. n이 0 ~ 15일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. (0 ≤ n ≤ 45) 출력 첫째 줄에 n번째 피보나치 수를 출력한다. 예제 입력 10 예..
문제 n명의 사람중 m명을 순서에 상관없이 뽑는 경우의 수를 조합이라고 하며 nCm으로 나타낸다. nCm은 수식으로 n!/m!(n-m)! 으로 구할 수 있다. (5! = 1 * 2 * 3 * 4 * 5) n과 m이 주어졌을때 nCm의 끝자리 0의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 n, m(0≤m≤n≤1,000,000)이 들어온다. 출력 첫째 줄에 0의 개수를 출력한다. 예제 입력 25 12 예제 출력 2 ------------------------------------------------------------------------------------------------------------------------------ 직접적인 팩토리얼을 사용하는 방식으로 구하지 않았다..
문제 n명의 사람중 m명을 순서에 상관없이 뽑는 경우의 수를 조합이라고 하며 nCm으로 나타낸다. 이 조합은 파스칼의 삼각형과 아주 밀접한 관련이 있다고 한다. n과 m이 주어졌을때 nCm의 값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 n, m(0 ≤ m ≤ n ≤ 30)이 들어온다. 출력 첫째 줄에 nCm의 값을 출력한다. 예제 입력 5 2 예제 출력 10 ------------------------------------------------------------------------------------------------------------------------------ 팩토리얼을 직접적으로 계산하지 않고 행렬에 파스칼의 삼각형을 그려서 해결했다. #include using na..