
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'Wiki\\input.txt';
const [t, ...inputs] = fs.readFileSync(path).toString().trim().split('\r\n');
function printFashionCase(testCase, n) {
const closet = {};
for (const clothes of testCase) {
const [name, sort] = clothes.split(' ');
if (sort in closet) closet[sort]++;
else closet[sort] = 1;
}
const answer = Object.values(closet).reduce((cur, pre) => cur * (pre + 1), 1);
console.log(answer - 1);
}
for (let _ = 0; _ < t; _++) {
const clothes = [];
let n = Number(inputs.shift());
for (let i = 0; i < n; i++) {
clothes.push(inputs.shift());
}
printFashionCase(clothes, n);
}
해시 문제 유형이지만 객체로 푼 모습..🥲
입력이 까다로웠다. 하나의 테스트 케이스를 for 문으로 돌면서 구분해줬다.
일반 객체를 사용해서 각 종류별 옷의 개수를 세어준 다음 종류별로 곱해줬다.
모든 종류의 옷을 입거나, 벗거나 할 수 있기때문에 걍 냅다 곱해줬다.(조합)
그리고 아무것도 입지 않을 경우를 빼주면 정답이 나온다.
조합이 기억안나서 정답보고 풀었다.
고등학교때 확통 잘했는데 . . .