Programming/Algorithm 237

[백준] #9020 골드바흐의 추측 python

https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 📕 설명 📕 1. 입력 받은 수를 // 2 연산하여 값을 각각 저장한다. 2. 해당 각각 저장한 값이 소수인지를 확인하며 둘 다 소수라면 print하고 끝낸다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 def is_prime(n): if n == 1: return False for i in range(2, int(n ** 0.5) + 1): if n % i == 0: return False..

[백준] #4948 베르트랑 공준 python

https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 📕 설명 📕 해당 문제를 풀이하기 위하여 "에라토스테네스의 체" 방법을사용하였다. 에라토스테네스의 체 위 방법은 A ~ B 사이 값 중의 소수를 얻고자 할 때 사용한다. 1. 2 ~ N 사이의 값을 담은 배열을 생성한다. 2. 배열 내 i 부터 시작하여, i의 배수들을 배열에서 지운다. 3. i의 배수들을 모두 지우면, i 다음으로 작은 배수들을 배열에서 지워준다. 4. 2, 3번을 반복할..

[백준] #1929 소수 구하기 Python

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 📕 설명 📕 해당 문제를 풀이하기 위하여 "에라토스테네스의 체" 방법을사용하였다. 에라토스테네스의 체 위 방법은 A ~ B 사이 값 중의 소수를 얻고자 할 때 사용한다. 1. 2 ~ N 사이의 값을 담은 배열을 생성한다. 2. 배열 내 i 부터 시작하여, i의 배수들을 배열에서 지운다. 3. i의 배수들을 모두 지우면, i 다음으로 작은 배수들을 배열에서 지워준다. 4. 2, 3번을 반복할 수 있을 때까지 반복한다. 🧑🏻‍💻 나..

[백준] #11653 소인수분해 python

https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 먼저, 해당 수가 1. 소수인지 체크한다. 2. 반복문을 통해 나눠지는 수를 반복하여 약수로 추가한다. N = int(input()) result = [] nTrue = True if N == 1: nTrue = False for j in range(2, N): if N % j == 0: nTrue = False if nTrue: print(N) else: for i in range(2,N+1): if N % i == 0: while N % i == 0: N = N // i result.append(i) for i ..

[백준] #2581 소수 python

https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 좀 더 깔끔하게 풀이할 순 없었을까.. A = int(input()) B = int(input()) num_list = [i for i in range(A, B+1)] result = [] for i in num_list: if i == 1: continue if i == 2: result.append(2) continue if i == 3: result.append(3) continue nTrue = Tr..

[백준] #1978 소수 찾기 python

https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 소수는 1과 자기자신만을 약수로 가지는 성질을 이용한다. input() num_list = list(map(int ,input().split())) cnt = 0 for i in num_list: if i == 1: continue if i == 2 or i == 3: cnt += 1 continue nTrue = True for j in range(2,i): if i % j == 0: nTrue = False if nTrue: cnt += 1 print(cnt)

[백준] #2775 부녀회장이 될 테야 python

https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 여러 layer들을 저장한 상태로 진행 ! T = int(input()) for i in range(T): K = int(input()) N = int(input()) tmp_0_li = [i for i in range(1, N+1)] tmp_li = [[] for _ in range(K+1)] tmp_val = [] tmp_li[0].extend(tmp_0_li) for j in range(1,K+1): for k in range(1,..

[백준] #2839 설탕 배달 python

https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 자연수의 분할로 생각하면 문제 풀이가 쉽다. N = int(input()) num_5 = N // 5 num_3 = N // 3 cnt_max = -1 for i in range(num_5+1): for j in range(num_3+1): if i*5 + j*3 == N: cnt_max = i + j print(cnt_max)

[백준] #10250 ACM 호텔 python

https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 2차원 배열과 같은 원리로 indexing을 고려하였다. import math T = int(input()) for i in range(T): H, W, N = map(int ,input().split()) H_div_N = N % H H_quo_N = N // H if H_div_N == 0: H_div_N = H H_quo_N = math.ceil(N / H) - 1 if H_qu..