25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net N, k = map(int, input().split()) x = list(map(int, input().split())) print(sorted(x)[-k]) *key point: sorted 함수는 오름차순으로 정렬하기 때문에, 정렬된 리스트를 뒤에서 부터 세어주어야한다. 내림차순으로 정렬하고 싶다면 sorted 함수의 reverse 옵션을 사용할 수 있다. sorted(x, reverse=True)
10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net import sys N = int(sys.stdin.readline()) num_list = [0] * 10001 for i in range(N): num = int(sys.stdin.readline()) num_list[num] += 1 for i in range(10001): if num_list[i] != 0: for j in range(num_list[i]): print(i) *key point: 2750, 2751번 문제와 유사하나 다루는 수의 범위가 다르기 때문에 같은 방..
2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net import sys N = int(input()) num = [] for _ in range(N): num.append(int(sys.stdin.readline())) num2 = sorted(num) for i in num2: print(i) *key point: 2750번 문제와 동일하나 입력 값 N의 범위가 크기 때문에, sys 모듈을 이용하여 시간 초과가 발생하지 않도록 한다.
2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net N = int(input()) num = [] for i in range(N): num.append(int(input())) num2 = sorted(num) for i in range(len(num)): print(num2[i]) *key point: 파이썬의 내장 함수인 sorted()를 이용하여 정렬할 수 있다. 이후 반복문을 이용하여 리스트의 요소를 순서대로 출력한다.
11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net N = int(input()) if N == 1: print('') for i in range(2, N+1): if N % i == 0: while N % i == 0: print(i) N = N / i *key point: 소인수분해의 경우 2부터 불가능할 때까지 반복해서 나누어준 뒤 나누는 수를 1씩 증가시켜 반복하면 하면 배수의 경우가 자연스럽게 사라지므로 쉽게 수행된다.
2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net prime_num = [2] for i in range(3, 10000): for j in range(2, int(i**0.5)+1): if i % j == 0: break else: prime_num.append(i) M = int(input()) N = int(input()) num_list = [] for i in range(M, N+1): if i in prime_num: num_list.append(i) if len(num_list) == 0: print(-1) ..
1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net N = int(input()) num_list = map(int, input().split()) prime_num = [] for num in num_list: if num == 1: continue for i in range(2, int(num ** 0.5) + 1 ): if num % i==0: break else: prime_num.append(num) print(len(prime_num)) *key point: 2 ~ 제곱근까지만 나누어 보는 것만으로도 소수임을 판별 가능하다. for - else문의 활용으로 표현을 간결히..
9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net def check_prime(a): for i in range(2, int(a**0.5) + 1): if a % i == 0: return False if a == 1: return False return True T = int(input()) for i in range(T): n = int(input()) for num in range(n // 2, 1, -1): if check_prime(num) and check_prime(n - num..
10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net A, B = map(int, input().split()) print(A+B) *key point: 변수를 저장할 때 자료형에 따라 정해진 메모리를 사용하는 fixed-precision arithmetic 방식의 경우(ex. C언어) 오버플로우 문제가 발생할 수 있다. 하지만 python3(2022.09.22. 기준)의 경우 int 자료형에도 arbitrary-precision arithmetic 방식이 적용되어 오버플로우가 발생하지 않아 본 문제를 쉽게 풀 수 있다. *reference: https://en.wikipedia.org/wiki/Arbitrary-precis..
2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net N = int(input()) M = 0 while N >= 0 : if N % 5 == 0 : M += (N // 5) print(M) break N -= 3 M += 1 else : print(-1) *key point: 5나 3으로 먼저 나눈뒤 나머지를 생각하면 고려하지 못하는 경우가 발생한다. 따라서 반복문을 이용하여 3씩 감소시키면서 특정 순간 5의 배수로 나누어 떨어지면 break 하도록 한다. break 되지 않고 반복문이 종료되면(=정확하게 N킬로그램을 만들..
- Total
- Today
- Yesterday
- Programmers
- 코육대
- 5597
- 26069
- til
- 백준
- 2903
- MySQL
- 10807
- 13241
- 20920
- 벡준
- Python
- 2053
- 항해 플러스
- 24313
- 24723
- 2738
- 1269
- 13909
- 24060
- programmer
- 4134
- 17103
- 25501
- 25192
- SQL
- 2587
- Wil
- 항해+
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |