자료구조 & 알고리즘/프로그래머스(programmers)

programmers - 예산

programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 쉬운문제였다. def solution(d, budget): d.sort() cnt = 0 answer = 0 for i in d: cnt += i if cnt

2021.05.06 게시됨

자료구조 & 알고리즘/프로그래머스(programmers)

programmers - 멀쩡한 사각형

programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr # 처음에는 직선의 방정식을 구해서 for 문으로 x,y값을 넣으려는 방식을 구현했는데 실패 # 직선의방정식이 결국에는 최대공약수 사용 # 최대공약수로 나눠서 최소화해서 구하고 최대공약수를 다시 곱해주는 방식 def solution(w,h): import math total = w * h # (w//gcd + h//gcd -1)*gcd answer ..

2021.05.05 게시됨

자료구조 & 알고리즘/프로그래머스(programmers)

programmers - 소수 만들기

programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr def solution(nums): from itertools import combinations comb = list(combinations(nums,3)) comb_sum = [0 for _ in range(len(comb))] for i in range(len(comb)): for j in comb[i]: comb_sum[i]+=j def primen..

2021.05.05 게시됨

자료구조 & 알고리즘/프로그래머스(programmers)

programmers - 소수찾기

from itertools import permutations numbers = list(numbers) data = [] for i in range(len(numbers)): data += (list(map(''.join, permutations(numbers,i+1)))) data = set(list(map(int,data))) data -= set(range(0,2)) for i in range(2, int(max(data) ** 0.5) + 1): data -= set(range(i * 2, max(data) + 1, i)) print(len(data)) 소수를 구할 때 사용한 방법은 이번에 공부한 에라토스테네스 체 법칙을 사용했다. 에라토스테네스 체란 n=2부터 시작하여 일정 범위까지 자신을 제..

2021.04.23 게시됨