백준(30)
-
[기본수학 2] 소인수분해, 소수 구하기
11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 소인수 분해 문제는 굳이 소수를 구하는 방식으로 풀어야 하나? 하는 생각이 들어서 그냥 쉽게 작성했다. import sys from sys import stdin test = int(stdin.readline()) def get_factorization(no: int): for i in range(2, no): if no % i == 0: print(i) return ge..
2021.03.28 -
[기본수학2] 소수
2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 소수찾기 문제랑 사실상 같다. [기본수학 2] 소수 찾기 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 시간 절약을 위해 10 이하 소수를 배열에 넣고 시작 nookpi.tistory.com 설명은 생략 from sys import stdin import math test_min = int(stdin.readline()) test_max = i..
2021.03.12 -
[기본수학 2] 소수 찾기
1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 시간 절약을 위해 10 이하 소수를 배열에 넣고 시작했다. 소수 (수론) 위키백과, 우리 모두의 백과사전. 좌측은 소수, 우측은 합성수. 소수란 자신보다 작은 두 자연수를 곱하여 만들 수 없는 1보다 큰 자연수이다. 소수(素數, 발음: [소쑤], 문화어: 씨수, 영어: prime nu ko.wikipedia.org from sys import stdin import math test_count = int(stdin.readline()) test_case = list(map(int, stdin.readline().split(" ")..
2021.03.12 -
[기본수학1] Fly me to the Alpha Centauri
1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 이동 거리의 변화는 +1 , 0 , -1 중에서 일어나고 맨 마지막 이동거리는 1이기 때문에, 작동시기별 최대 이동거리에 도달하기 위한 요소들이 생기게 된다. 최대 이동거리가 5라면 1 2 3 4 5 4 3 2 1 의 형태가 기본적으로 존재하게 된다는 뜻. 이 형태의 합을 구하면 n^2 이 된다. 전체 이동거리에서 n^2 로 나올 수 있는 형태를 빼고 나머지를 통해서 잔여 횟수를 더해주면 끝. 잔여 횟수는 0 또는 1..
2021.02.27 -
[기본수학1] 큰 수 A+B
10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 파이썬에서는 그냥 a+b를 바로 출력해도 정답처리가 되더라;; 어쨌든 의도는 그게 아닌 것 같아서 구현했다. 그냥 A+B 했을 때 72ms 정도 소요됐는데 직접 구현한 건 92ms라... 비슷하게 걸린 것 같은데 최적화하면? 제출 코드 a_input, b_input = list(map(str, input().split(" "))) a = list(a_input) b = list(b_input) len_max = max([len(a), len(b)]) len_min = min([len(a), len(b)]) len_diff = len_max - len_min if len_m..
2021.02.26 -
[기본수학1] 설탕 배달
2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 제출코드 from sys import stdin kg = int(stdin.readline()) def get_container_count(kg: int): total_max = kg // 3 # 나올 수 있는 토탈 최대값 total_min = kg // 5 # 나올 수 있는 토탈 최소값 if kg % 5 == 0: return total_min for i in range(0, total_max + 1): three_rest = (kg - (3 * i)) if three_..
2021.02.24