https://school.programmers.co.kr/learn/courses/30/lessons/120840
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 답안 :
1
2
3
4
5
6
7
8
9
10
11
|
def solution(balls, share):
#팩토리얼 구하는 함수 정의
def factorial(n):
fac = 1
for i in range(1,n+1):
fac *= i
return fac
# balls개 중에서 share개를 선택하는 경우의 수
answer = factorial(balls) / (factorial(balls - share)*factorial(share))
return answer
|
cs |
채점을 시작하자마자 왠지 파이썬에는 팩토리얼 구하는 라이브러리 있을 것 같은데..! 하는 생각이 들었다.
역시나 있었다. (아래 개선안에)
개선안 :
1
2
3
|
import math
def solution(balls, share):
return math.factorial(balls)/(math.factorial(balls-share)*math.factorial(share))
|
cs |
math 라이브러리의 factorial 함수를 사용할 수 있다.
1
2
3
4
|
import math
def solution(balls, share):
return math.comb(balls, share)
|
cs |
factorial 함수만 있는 것이 아니라..!
반복과 순서 없이 n 개의 항목에서 k 개의 항목을 선택하는 방법의 수를 반환하는 comb 함수를 사용하면
다른 연산이 전혀 필요없다.
파이썬은 라이브러리와 함수들을 많이 아는 것도 중요한 것으로 보인다.
조만간 자주 쓰이는 라이브러리들을 찾아 정리해봐야겠다.
'프로그래밍 > Python' 카테고리의 다른 글
프로그래머스_python lv0. n의 배수 고르기 (0) | 2023.04.06 |
---|---|
프로그래머스_python lv0. 숫자 찾기 (0) | 2023.04.06 |
프로그래머스_python lv0. 개미 군단 (0) | 2023.02.12 |
프로그래머스_python lv0. 순서쌍의 개수 (0) | 2023.02.06 |
프로그래머스_python lv0. 진료순서 정하기 (0) | 2023.02.05 |