c++
-
JUNGOL 실력키우기 1740 : 소수보관함 2017. 9. 30. 21:39
자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최소값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100이 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최소값은 61이 된다. 입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10,000이하의 자연수이며, M은 N보다 같거나 작다. M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최소값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. [Copy] 60 100 [Copy] 620 61 이 직전 ..
-
JUNGOL 실력키우기 2813 : 소수의 개수보관함 2017. 9. 26. 19:54
소수(prime number)란 1보다 큰 자연수 중 1과 자기 자신 두 개만을 약수로 갖는 수를 말한다. 자연수 M과 N을 입력받아 M부터 N까지 소수의 개수를 구하여 출력하는 프로그램을 작성하시오. 자연수 M과 N이 공백으로 구분되어 주어진다. (1 ≤ M ≤ N ≤ 2,000,000) M이상 N이하의 자연수 중 소수가 몇 개인지 구하여 출력한다. [Copy] 10 100 [Copy] 21 시간 제한을 두고 생각하다 보니 단순하게 반복문 돌리는건 시도조차 안하게 되는군요. 어쨋거나 이번에는 JUNGOL에서 제대로 HINT를 만들어 줘서 그걸 보고 제 나름대로 프로그램을 만들어 해결해 보았습니다. 코드1 int prime(int x) { int i; for (i=2; i*i
-
JUNGOL 실력키우기 2811 : 소수와 합성수보관함 2017. 9. 26. 10:04
소수(prime number)란 1보다 큰 자연수 중 1과 자기 자신 두 개만을 약수로 갖는 수를 말한다. 합성수(composite number)란 1보다 큰 자연수 중 소수가 아닌 수를 말하며 3개 이상의 약수를 갖는다. 1은 소수도 합성수도 아니다. 5개의 자연수를 입력받아 소수인지 합성수인지를 판단하는 프로그램을 작성하시오. 10억 이하의 자연수 5개가 공백으로 구분되어 주어진다. 입력된 순서대로 한 줄에 한 개씩 소수이면 "prime number", 합성수이면 "composite number", 소수도 합성수도 아니면 "number one"이라고 출력한다. [Copy] 3 10 1 55 127 [Copy] prime number composite number number one composite ..
-
JUNGOL 실력키우기 2810 : 타일교체보관함 2017. 9. 25. 11:32
화장실 바닥을 새로운 타일로 교체하려고 한다. 타일은 모두 정사각형 모양으로 한 변의 길이는 정수로 표시되어 있다. 타일의 크기를 여러 가지로 하면 보기가 싫기 때문에 모두 같은 크기의 타일을 사용하려고 한다. 타일의 개수가 많아지면 비용이 많이 들기 때문에 타일의 개수는 가능하면 최소한으로 사용하려고 한다. 화장실의 가로의 크기와 세로의 크기가 주어질 때 필요한 최소 타일의 개수를 구하는 프로그램을 작성하라. 화장실 가로의 길이와 세로의 길이가 차례대로 입력된다. 1 [Copy] 24 30 [Copy] 20 바로 직전에 어려운 문제들을 해결해서인지 굉장히 쉽게 해결했네요! 사실 난이도 순서로 가는 거라면 순서가 잘 못된 것 같다는 생각이 드는군요. GCD를 사용하면 금방 해결이 가능합니다. 1 2 3 ..
-
JUNGOL 실력키우기 2498 : 공약수보관함 2017. 9. 24. 16:34
어떤 두 자연수에 공통인 약수들 중에서 가장 큰 수를 최대공약수라고 하고, 두 자연수의 공통인 배수들 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 두 자연수 12와 90의 최대공약수는 6이며, 최소공배수는 180이다. 이와 반대로 두 개의 자연수 A, B가 주어졌을 때, A를 최대공약수로, B를 최소공배수로 하는 두 개의 자연수를 구할 수 있다. 그러나, 이러한 두 개의 자연수 쌍은 여러 개 있을 수 있으며, 또한 없을 수도 있다. 예를 들어, 최대공약수가 6이며 최소공배수가 180인 두 정수는 위의 예에서와 같이 12와 90일 수도 있으며, 30과 36, 18과 60, 혹은 6과 180일 수도 있다. 그러나, 최대공약수가 6이며 최소공배수가 20인 두 자연수는 있을 수 없다. 두 개의 자연..
-
JUNGOL 실력키우기 2255 : 섞기 수열보관함 2017. 9. 20. 09:47
A1, A2, …, AN으로 표시된 N 개의 카드를 정해진 방법으로 섞고자 한다. 그 섞는 방법은 1에서 N까지의 숫자로 이루어진 수열로 표시된다. 이 수열을 섞기 수열이라 하자. 섞기는 현재 가지고 있는카드에서 섞기 수열의 각 숫자가 나타내는 위치에 있는 카드를 순서대로 뽑아서나열하는 것이다. 예를 들어, N = 6이고 섞기 수열이 [3, 2, 5, 6, 1, 4]라고 하자. 카드의 처음 상태가 [A1, A2, A3, A4, A5, A6]일 때, 섞기를 한 번 실행하면 카드의 순서가 다음과 같이 된다. [A3, A2, A5, A6, A1, A4] 이 상태에서 다시 한 번 섞기를 실행하면 카드의 순서가 [A5, A2, A1, A4, A3, A6]이 되고, 다시 한 번 더 섞기를 실행하면 카드의 순서가 [..
-
JUNGOL 실력키우기 1002 : 최대공약수, 최소공배수보관함 2017. 9. 19. 19:41
n개의 정수를 입력받아서 최대공약수와 최소공배수를 구하는 프로그램을 작성하여 보자. 첫째 줄에 N (2≤N≤10) 을 입력받고 다음 줄에 N개의 정수를 공백으로 구분하여 입력받는다. 입력받는 정수는 2이상 10 000 이하이다.데이터의 크기가 주어진 범위를 벗어나는 입력은 없다. 입력받은 정수들의 최대공약수와 최소공배수를 공백으로 구분하여 출력한다.최소공배수는 20억 이하의 정수이다. [Copy] 3 2 8 10 [Copy] 2 40 저번 문제의 응용판입니다. 저번 함수 그대로 써도 될 듯 하네요 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ..
-
JUNGOL 실력키우기 1658 : 최대공약수와 최소공배수보관함 2017. 9. 18. 10:45
두개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 입력 파일의 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다. 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. [Copy] 24 18 [Copy] 6 72 요즘 보는 문제들은 힌트들이 상세히 적혀있어서 푸는데 크게 문제는 없는 듯 합니다. 다만 실제 실력 향상을 위해 제시된 모든 코드를 실제 구현해 보는 것이 좋을 것 같네요. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3..