Algorithm_javascript/17. 조합론

# 백준 15439번 베라의 패션 (javascript, node.js)

luminouswy 2023. 7. 30. 13:35
반응형

백준 15439번 베라의 패션 (javascript, node.js)

문제

  • 백준 15439번 베라의 패션 보러 가기
  • 베라는 상의 N 벌과 하의 N 벌이 있다. i 번째 상의와 i 번째 하의는 모두 색상 i를 가진다. N 개의 색상은 모두 서로 다르다.
  • 상의와 하의가 서로 다른 색상인 조합은 총 몇 가지일까?
 

15439번: 베라의 패션

베라는 상의 N 벌과 하의 N 벌이 있다. i 번째 상의와 i 번째 하의는 모두 색상 i를 가진다. N 개의 색상은 모두 서로 다르다. 상의와 하의가 서로 다른 색상인 조합은 총 몇 가지일까?

www.acmicpc.net


입력

  • 입력은 아래와 같이 주어진다.
  • N

출력

  • 상의와 하의가 서로 다른 색상인 조합의 가짓수를 출력한다.

예제입력 1

1

예제출력 1

0

예제입력 2

2

예제출력 2

2

예제입력 3

5

예제출력 3

20

문제풀이

  • 상의와 하의가 서로 다른 색상의 조합 수를 구하면 되는 문제
  • 순열에 관한 문제 n 개의 원소에서 r개를 중복 없이 순서에 상관있게 선택하거나 나열하는 것
  • 여기서 입력값 n 은 원소이고 r은 2개(다른 색의 상의 하의)
  • 서로 다른 n개의 원소에서 r개를 선택하는 순열의 가능한 개수를 기호로 nPr 이라고 하면 n이 5이면 5p2 = 5 _ (5-1) // n = 3 이면 3p2 = 3 _ (3-1) 원소의 개수가 2개라서 n부터 n-1까지 곱하기
// 15439번 베라의 패션

// 같은 N벌의 상하의는 같은 색이다.
// 상의와 하의가 서로 다른 색상의 조합의 수를 구하면 되는 문제

// n=1이면 상하의가 같은 색상이여서 서로다른 색상은 0
// n=2 이면 서로 다른 색상은 1,2 / 2,1 총 2개
// n=3 이면 서로 다른 색상은 1,2 / 1,3 / 2,1 / 2,3 / 3,1 / 3,2 총 6개
// n=4 이면 서로 다른 색상은 4*(4-1) = 12개
// n=5 이면 서로 다른 색상은 5*(5-1) = 20개
// n개 이면 n*(n-1) 개의 서로다른 경우의 수가 나옴

const fs = require("fs");
const file = process.platform === "linux" ? "dev/stdin" : "./text.txt";
const input = fs.readFileSync(file).toString().trim().split(" ");

const n = input.map(Number);

const result = n * (n - 1);

console.log(result);