백준's 단계별 풀이 9

Stage_9 (기본수학2) 9020번 골드바흐의 추측

문제출처 : www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net #백준's Stage9 (기본수학) 9020번 골드바흐의 추측 # 자연수 2의 배수 N이 주어지며 4 ≤ n ≤ 10,000 # 두 소수의 합으로 N을 나타낼 수 있는 소수를 구하는 문제 # 문제풀이 아이디어 # 1. 10,000까지의 소수를 미리 구하고 (에라토스테네스의 체 이용) # 2. 소수 중 작은 수를 A, 큰수를 B라고 하면 A+B = N # 3. B를 N의 절반(N/..

Stage_9 (기본수학2) 4948번 베르트랑 공준

www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net #숫자 N까지 소수 개수 구하는 함수 def isPrimeBelow(N): sieve = [1] * (N+1) sieve[0] = 0 sieve[1] = 0 for i in range(2, int(N**0.5)+1): if sieve[i] == 1: for j in range(i+i, N+1, i): sieve[j] = 0 return sieve #가장 큰 숫자까지 미리 소수를 구해놓기 prime_lis..

Stage_8 (기본수학1) 1011번 Fly me to the Alpha Centauri

x와 y 사이를 우주선으로 가는데 1) s= 양끝단 거리 / v = 최고 속도 (이동거리 / 1워프) 2) 시작점에서 1부터 증가 --> 최고 속도에 이름 --> 1씩 속도 감소 (등차수열) ex) 속도 = [1, 2, 3, ...., v, 알파, v-1, v-2, ..., 2, 1] 3) 따라서 속도의 합 = v(v+1)/2 * 2 - v + 알파 *여기서 v(v+1)/2는 1부터 v까지의 합을 의미 4) 풀어서 쓰면 속도의 합(s) = v^2 + 알파 // 즉, s = v^2 + 알파 // v = s^0.5 가 된다. ex1) 거리가 120이라면, 최고 속도는 10이 되고 거리의 나머지는 20가 된다. 그런데 나머지가 19가 최고속도 10보다 크기 때문에 10, 10 이렇게 회수 2번 추가 ex2) ..

Stage_8 (기본수학1) 2839번 설탕 배달

문제출처 : www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net # 설탕 3kg / 5kg 단위로 있음. # N = 총 배달 kg # 5n + 3m = N 배달 가능 (0 =

Stage_8 (기본수학1) 2775번 부녀회장이 될테야

# k번째 층에 n호까지의 인원수 = [x1, x2, x3, ...., xn] 일때 # 다음층의 인원 = [y1,y2,y3, ..., yn]을 구하는 함수는 아래와 같다. 이때 입력값 Floor_n은 List. def Floor_n1 (Floor_n): Floor_next = [sum(Floor_n[0:j]) for j in range(1,len(Floor_n)+1)] return Floor_next # Floor_n에 저장된 x1+x2+...+x[j]의 합이 Floor_next의 y[j]가 된다 # T = 테스트 개수 / k = 층수 / n = 호수 T = int(input()) for i in range(T): k = int(input()) n = int(input()) Floor_n = [] Flo..