T.I.L
23-06-16 T.I.L 프로그래머스 Combination 공식 코드화 하기
김민커
2023. 6. 16. 21:12
문제설명
주머니에 있는 구슬을 친구들에게 나누어 준다고 했을 때
중복 없는 경우의 수를 return하시오
시도
학창시절에 배웠던 경우의 수의 공식이 바로 생각났다. 그것을 코드화 하면 문제가 풀리겠다는 생각이 들었다.
해결
function solution(balls, share) {
var answer = 0;
let ball=1
let she=1
for(let i=0;i<share;i++){
ball*=(balls-i)
}
for(let i=0;i<share;i++){
she*=(share-i)
}
answer=ball/she
return answer;
}
중복이 없는 경우의 수 공식은 nCr 이라는 Combination 공식이다.
즉 중복없는 뽑기의 경우의 공식이란 n=전체의 수/ r= 뽑는 횟수
n(n-1)..(n-r)/r! 이기 때문에 이것을 코드화 했다.
알게된 점
학창시절에 수학공식 같은 것이 컴퓨터 작업을 할 때 쓰인다는 막연한 얘기를 들은적이 있었다.
생각해보면 수학공식과 코드의 알고리즘은 일맥상통하는 점이 있다.
이 문제를 풀면서 수학공식 자체의 알고리즘은 잘 모르고 그저 공식만 외우고 있던게 생각났다.
코드는 설계된 메서드가 없거다 모른다면 내가 직접 알고리즘을 설계해야한다.
앞으로 코딩테스트를 할 때 생각없이 메소드를 사용해서 풀지말고 알고리즘을 이해하고 내가 직접 설계해서 푸는 것이
실력 향상에 더 도움이 될 것 같다고 느꼈다.