728x90
반응형
SMALL
Programmers 레벨 0_코딩테스트 입문 문제 풀이
https://school.programmers.co.kr/learn/challenges/beginner?order=recent&page=1
코딩테스트 입문 | 프로그래머스 스쿨
코딩테스트에 처음 도전하는 사람들을 위한 입문 문제 모음. 쉬운 문제부터 하나씩 도전해 보면서 코딩테스트에 자신감도 붙이고 문제 해결 능력을 키워보세요!
school.programmers.co.kr
풀이 날짜 : 2023-09-28
소요 시간 : 15min
문제 설명
머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요.
나의 풀이
def factorial(n):
base = 1
while n > 0:
base *= n
n -= 1
return base
def solution(balls, share):
a = factorial(balls)
b = factorial(share)
c = factorial(balls-share)
return a / (b * c)
조합으로 풀었을 때 시간 초과가 뜨는 문제가 있어서 통과받지 못했다.
from itertools import combinations
def solution(balls, share):
b = [b for b in range(balls)]
return len(list(combinations(b, share)))
다른 풀이
import math
def solution(balls, share):
return math.comb(balls, share)
숫자의 조합은 itertools > combinations가 아니라 math > comb를 이용한다.
728x90
반응형
LIST
'Coding Study > Programmers (Python)' 카테고리의 다른 글
| [프로그래머스/파이썬] Lv.0 외계어 사전 (10') (0) | 2023.09.28 |
|---|---|
| [프로그래머스/파이썬] Lv.0 삼각형의 완성조건 (2) (5') (0) | 2023.09.28 |
| [프로그래머스/파이썬] Lv.0 영어가 싫어요 (2') (0) | 2023.09.28 |
| [프로그래머스/파이썬] Lv.0 문자열 계산하기 (1') (0) | 2023.09.28 |
| [프로그래머스/파이썬] Lv.0 잘라서 배열로 저장하기 (3') (0) | 2023.09.26 |