목록Computer/Algorithm (8)
완숙의 블로그
시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초256 MB58221016241.969% 문제 B를 A로 나누었을 때 나머지가 0 이라면 A는 B의 약수라고 할 수 있다. (A > 0, B > 0) 예를 들면 15 의 약수는 1, 3, 5, 15 이다. 주어진 수가 가지는 약수 개수가 홀수인지 짝수인지 판별해보자. 입력 첫 번째 줄에는 전체 테스트 개수 (N) 가 주어진다. (1 ≤ N ≤ 100) 두 번째 줄에는 약수 개수를 판별할 수 (X) 가 주어진다 (1 ≤ X ≤ 1018). 출력 주어진 수의 약수 개수가 홀수이면 1, 짝수이면 0 을 출력하시오. 예제 입력 1 2 4 5 예제 출력 1 1 0 풀이 count = int(input()) num = input() num = num.split()..
백준[1913] 달팽이 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초128 MB31981695139755.657% 문제 홀수인 자연수 N(3≤N≤999)이 주어지면, 다음과 같이 1부터 N2까지의 자연수를 달팽이 모양으로 N*N의 표에 늘어놓을 수 있다. 923 814765 2510111213 2492314238141522765162120191817 N이 주어졌을 때, 이러한 표를 출력하는 프로그램을 작성하시오. 또한 N2 이하의 자연수가 하나 주어졌을 때, 그 좌표도 함께 출력하시오. 예를 들어 N=5인 경우 6의 좌표는 (4,3)이다. 입력 첫째 줄에 홀수인 자연수 N이 주어진다. 둘째 줄에는 위치를 찾고자 하는 N2 이하의 자연수가 하나 주어진다. 출력 N개의 줄에 걸쳐 표를 출력한다. 각 ..
백준 [10815] 숫자 카드 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이가 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 수..
백준 [1924] 2007년 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초128 MB50478208261796543.210% 문제 오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 빈 칸을 사이에 두고 x(1≤x≤12)와 y(1≤y≤31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. 출력 첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다. 예제 입력 1 1 예제 출력 MON 내 풀이 input_md = input() # inpu..
백준 [2749] 피보나치 수 3 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 n번째 피보나치 수를 1,000,000으로 나눈 나머지를 출력..
백준 [2747] 피보나치수 1 n = int(input()) array = [0, 1] if (n == 0): print(array[0]) elif(n == 1): print(array[1]) else: for i in range(2, n+1): array.append(array[i-2] + array[i-1]) print(array[n])
백준 [1934] 최소공배수 n = int(input()) for i in range(n): num = input() num = num.split() num = list(map(int, num)) if (num[0] > num[1]): mid = num[1] else: mid = num[0] for j in range(mid, 0, -1): if (num[0] % j == 0 and num[1] % j == 0): leastnum = j*(num[0] // j)*(num[1] // j) break print(leastnum)