[백준9375_자바스크립트(javascript)] - 패션왕 신해빈

경이·2024년 5월 30일

𝑩𝑶𝑱 (𝒋𝒔)

목록 보기
46/325

🔴 문제

패션왕 신해빈


🟡 Sol

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 문으로 돌면서 구분해줬다.
일반 객체를 사용해서 각 종류별 옷의 개수를 세어준 다음 종류별로 곱해줬다.
모든 종류의 옷을 입거나, 벗거나 할 수 있기때문에 걍 냅다 곱해줬다.(조합)
그리고 아무것도 입지 않을 경우를 빼주면 정답이 나온다.

조합이 기억안나서 정답보고 풀었다.
고등학교때 확통 잘했는데 . . .


🔵 Ref

https://velog.io/@hamsangjin/%EB%B0%B1%EC%A4%80-9375%EB%B2%88-%ED%8C%A8%EC%85%98%EC%99%95-%EC%8B%A0%ED%95%B4%EB%B9%88-%ED%8C%8C%EC%9D%B4%EC%8D%AC

profile
록타르오가르

0개의 댓글