์ฒด๊ฐ Level : โ
โ
โ Review: ๊ฒฝ์ฐ์ ์ - ์กฐํฉ ๋ฌธ์ ์ด๋ค, ์ฌ์ ํ for ๋ฌธ ๊ฐ ์กฐ์ ํ๋๊ฒ ์ด๋ ต๋ค ๐ฐ ์ฆ๊ฐ๊ฐ์ ์ ์์ฉํ๊ณ ์ถ๋ค ใ ใ |
๐ก ์๋ก ๋ค๋ฅธ n๊ฐ์ ๋ฌผ๊ฑด์์ ์์๋ฅผ ์๊ฐํ์ง ์๊ณ r๊ฐ ์ ํํ๊ธฐ
=> ์ฆ ์กฐํฉ ๋ฌธ์ ์ด๋ค.
์ด ๊ณผ์ ์ ์ฝ๋ฉํด์ฃผ๋ฉด๋๋ค!
1) nPr
n์ 1์ฉ ๊ฐ์ํ๋ฉด์, r ๋ฒ ๊น์ง๋ง ๊ณฑํ๋ค.
2) n!
n๋ถํฐ 1๊น์ง, 1์ฉ ๊ฐ์ํ๋ฉด์ ๊ณฑํ๋ค.
3) nPr / n!
class Solution {
public double solution(int balls, int share) {
//๊ฒฝ์ฐ์ ์ - ์กฐํฉ
double num1 = 1;
double num2 = 1;
// nPr
int i = balls;
int cnt = 1 ;
while (cnt <= share){
num1 *= balls--;
cnt++;
}
// n!
for (int j = share; j >= 1; j--){
num2 *= j;
}
return num1/num2 ;
}
}
[์คํจ]
์คํจ์ด์ ๋ nPr ์์ n ์ ์ค์ฌ๊ฐ๋ฉด์ r ๋ฒ ๊น์ง๋ง ๊ณฑํ๋ ๊ฒ์ธ๋ฐ
๋๋ n ์ด r์ด ๋ ๋๊น์ง ์กฐ๊ฑด์ ์จ๋ฒ๋ฆฐ ๊ฒ์ด๋ค .... .๐ฐ๐ฐ๐ฐ (๋ฐ๋ณด์..)
class Solution {
public int solution(int balls, int share) {
//๊ฒฝ์ฐ์ ์ - ์กฐํฉ
int num1 = 1;
int num2 = 1;
// nPr
int i = balls;
while (i >= share){
num1 *= i;
i--;
}
// n!
for (int j = share; j >= 1; j--){
num2 *= j; //5 3 2
}
return num1/num2 ;
}
}
โญ ์ฝ๋ ์ฐธ๊ณ !
for ๋ฌธ ํ๋๋ก ๊ฐ๊ฒฐํ๊ฒ ํ์ด์ง ์ฝ๋์ด๋ค !!
์ธ์ ์ฏค ์ด๋ ๊ฒ ๊ฐ๊ฒฐํ๊ณ ๊นจ๋ํ ์ฝ๋๋ฅผ ๋ง๋ค ์ ์์๊น ๐ฅน๐ฅน
1) share๋งํผ ๋ฐ๋ณตํด์ฃผ๋ ๋ฐ๋ณต๋ฌธ
2) balls - i ๋ฅผ ํตํด์ !! balls ๊ฐ ์ค์ด๋ค๋ฉด์ 0 ~ share ๋งํผ ๋ฐ๋ณตํด์ฃผ๋ ํจ๊ณผ๊ฐ!!
class Solution {
public double solution(int balls, int share) {
double answer = 1;
for(int i = 0; i < share; i++){
answer = answer * (balls - i) / (i+1);
}
return answer;
}
}