https://www.acmicpc.net/problem/31474
문제
시현이 카페에 양갈래 손님들이 들어가려고 한다.
양갈래 손님들은 양갈래를 너무 좋아하는 나머지 두 명씩 모여 있어 총 인원은 짝수이다.
시현이 카페에는 두 명씩 앉을 수 있는 테이블이 충분히 많이 있고, 양갈래 손님들은 한 테이블에 두 명씩 앉기로 하였다.
그런 양갈래 손님들을 맞이하게 된 시현이는 갑자기 궁금증이 생겼다.
손님들이 앉는 경우의 수를 세는 조건이 다음과 같을 때, 양갈래 손님들이 모두 앉을 수 있는 방법의 수는 몇 가지가 있을까?
- 테이블의 좌석을 구분하지 않는다.
- 한 테이블에서 손님 A와 손님 B가 앉는 경우, 손님 B와 손님 A가 앉는 경우는 같은 경우이다.
- 각각의 테이블 또한 구분하지 않는다.
- 1번 테이블에 손님 A, B가 앉고, 2번 테이블에 손님 C, D가 앉는 것과, 1번 테이블에 손님 C, D가 앉고, 2번 테이블에 손님 A, B가 앉는 것은 서로 같은 경우이다.
입력
첫째 줄에 양갈래 손님의 수 � 이 주어진다. (2≤�≤28 , � 은 짝수)
출력
첫째 줄에 양갈래 손님들이 앉을 수 있는 경우의 수를 출력한다.
연산 중 32비트 정수형 타입의 표현 범위를 초과할 수 있으므로 오버플로우에 주의한다.
예제 입력 1 복사
2
예제 출력 1 복사
1
예제 입력 2 복사
4
예제 출력 2 복사
3
문제풀이(1)
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
const N = Number(require("fs").readFileSync(filePath).toString().trim());
let result = 1;
for (let i = N; i > 0; i -= 2) {
result *= (i * (i - 1)) / 2;
result /= i / 2;
}
console.log(result);
'Algorithm' 카테고리의 다른 글
[Baekjoon]30970번 선택의 기로 - Javascript (0) | 2024.03.11 |
---|---|
[Baekjoon]11899번 괄호 끼워넣기 - Javascript (0) | 2024.02.28 |
[Baekjoon]17254번 키보드 이벤트 - Javascript (1) | 2024.02.27 |
[Baekjoon]1835번 카드 - Javascript (0) | 2024.02.26 |
[Baekjoon]1590번 캠프가는 영식 - Javascript (0) | 2024.02.23 |