Summer/Winter Coding(~2018)
-
12982. 예산(Python, Programmers Level 1)Programmers 2022. 9. 7. 00:12
문제 설명 각 부서에서 돈을 요구합니다. 주어진 돈으로 최대한 많은 부서를 만족하세요. 입력 d: 각 부서가 요구하는 금액이 들어있는 1차원 리스트 budget: 예산 풀이 가장 적은 예산을 달라고 하는 부서를 우선 만족시키는 것이 최대한 많은 부서를 만족시키는 일일 것입니다. 여기서는 예산을 정렬하고 누적합 리스트를 만들어 정해진 예산으로 만족시킬 수 있는 부서의 수를 찾고자 하였습니다. 또한, 이진 탐색을 사용한다면, 몇 개의 부서를 만족시킬 수 있을지 빠르게 찾을 수 있을 것입니다. 코드 더보기 from bisect import bisect def solution(d, budget): prefix_sum = [0] * (len(d) + 1) for i, num in enumerate(sorted(d..
-
12977. 소수 만들기(Python, Programmers Level 1)Programmers 2022. 9. 5. 01:38
문제 설명 주어진 숫자 중 3개를 더했을 때 소수인 경우의 개수를 구합니다. 코드1 서로 겹치지 않는 인덱스의 숫자 세 개를 더한 수를 만듭니다. n = len(nums) for i in range(n): for j in range(1 + i, n): for k in range(1 + j, n): num = nums[i] + nums[j] + nums[k] if all(num % m != 0 for m in range(2, int(num ** 0.5) + 1)): answer += 1 2 ~ n ** 0.5 범위의 숫자로 나누어 떨어지는 숫자가 하나도 없는 경우가 소수인 경우입니다. if all(num % m != 0 for m in range(2, int(num ** 0.5) + 1)): answer ..