문제
머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요.
제출 코드
def solution(box, n):
answer = (box[0]//n) * (box[1]//n) * (box[2]//n)
return answer
문제
약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.
제출 코드
def solution(n):
answer = 0
for i in range(1, n+1):
cnt = 0
for j in range(1,i+1):
if i % j == 0:
cnt += 1
if cnt >= 3:
answer += 1
return answer
문제
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
제출 코드
def solution(numbers):
answer = sorted(numbers)[-1] * sorted(numbers)[-2]
return answer
문제
i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 4 3 2 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
i! ≤ n
제출 코드
def factorial(num):
if num == 1:
return 1
else:
return factorial(num-1) * num
def solution(n):
answer = 1
while True:
if factorial(answer) > n:
return answer - 1
answer += 1
다른 풀이
def solution(n):
base = 1
m = 1
while base <= n:
m += 1
base *= m
return m-1