Home

[프로그래머스] N개의 최소공배수 _ 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12953 2. 풀이 from functools import reduce # 최대공약수 def gcd(a, b): while b > 0: a, b = b, a % b return a # 최소공배수 def lcm(a, b): return a * b / gcd(a, b) def solution(arr): return reduce(lambda a,b: lcm(a,b) , arr)

Read more

[프로그래머스] 최고의 집합 _ 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12938 2. 풀이 숫자의 곱이 가장 크게 하기 위해서는 값들이 균등한 값을 가져야 합니다. s를 n으로 나눈 몫을 모든 수에 할당해주고, 나머지를 1씩 분배해주면 정답을 구할 수 있습니다. def solution(n, s): if s < n: return [-1] answer = [s//n] * n for i in range(s%n): answer[i] += 1 return sorted(answer)

Read more

[프로그래머스] 줄 서는 방법 _ 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12936 2. 풀이 2.1. 시간 초과 풀이 20 이하의 자연수가 문제의 조건입니다. $ 20! $ 의 경우 $ {2.432902008}^{18} $ 입니다. 아래와 같은 풀이 방식으로 접근하면 경우의 수가 너무 커서 시간 초과가 발생합니다. from itertools import permutations def solution(n, k): a = [x for x in range(1, n+1)] return list(permutations(a, n))[k-1] 2.2. 정답 풀이 각 라...

Read more

[프로그래머스] 2021 KAKAO BLIND RECRUITMENT _ 메뉴 리뉴얼

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/70129 2. 풀이 자세한 풀이는 주석을 통해 설명을 도왔습니다. 2.1. 정답 풀이 from itertools import combinations def solution(orders, course): answer = [] for ln in course: # 코스 요리 개수 dict = {} # 코스 요리 구성을 세기 위한 dictionary for x in orders: # 각 주문들에 대하여...

Read more

[프로그래머스] 월간 코드 챌린지 시즌2 _ 약수의 개수와 덧셈

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/77884 2. 풀이 어떠한 수 n의 제곱수인 경우에 가지고 있는 약수의 개수가 홀수입니다. sqrt 함수를 사용하여 제곱근을 구하고 해당 숫자가 int 인지 확인하면 쉽게 답을 구할 수 있습니다. 2.1. 정답 풀이 import math answer = 0 for x in range(left, right + 1): if math.sqrt(x).is_integer(): answer -= x else: answer += x...

Read more