[프로그래머스] 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)
[프로그래머스] 최대공약수와 최소공배수 _ 문제 풀이
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12940
2. 풀이
# 최대공약수
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(n, m):
return [gcd(n,m), lcm(n,m)]
[프로그래머스] 짝수와 홀수 _ 문제 풀이
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12937
2. 풀이
def solution(num):
return "Odd" if num % 2 else "Even"
[프로그래머스] 문자열 다루기 기본 _ 문제 풀이
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12918
2. 풀이
def solution(s):
if (len(s) == 4 or len(s) == 6) and s.isdigit():
return True
return False
[프로그래머스] 최고의 집합 _ 문제 풀이
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)
[프로그래머스] 줄 서는 방법 _ 문제 풀이
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. 정답 풀이
각 라...
[프로그래머스] 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: # 각 주문들에 대하여...
[프로그래머스] 월간 코드 챌린지 시즌2 _ 이진 변환 반복하기
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/70129
2. 풀이
2.1. 정답 풀이
def solution(s):
answer = [0, 0]
while s != '1':
answer[0] += 1
answer[1] += s.count('0') # 0 개수 확인
s = s.replace('0', '') # 0 제거
s = bin(len(s))[2:]
return answer
[프로그래머스] 월간 코드 챌린지 시즌2 _ 음양 더하기
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/76501
2. 풀이
2.1. 정답 풀이
def solution(absolutes, signs):
return sum([ x if y else -x for x, y in zip(absolutes, signs)])
[프로그래머스] 월간 코드 챌린지 시즌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...
742 post articles, 75 pages.