문제 출처 : 프로그래머스 코딩 테스트 연습
각 의상 종류에 해당하는게 몇 가지씩인지만 알면 된다.
이 때 의상 이름의 경우 '같은 이름을 가진 의상은 존재하지 않습니다.' 에 따라 의미가 없으므로 버려도 된다.
즉, 예제1의 경우 의상 이름은 필요없고 아무튼
headgear 2
eyewear 1
라는 점만 알면 되며, 사실 종류명도 별로 상관없다. 동일한지만 hashing을 통해 확인할 수 있으면 된다.
그럼 계산은 어떻게 해야하냐면,
옷이 2종류라고 치면 2칸을 둬보자.
'ㅇㅇ'
첫번째 칸은 headgear를 입거나 입지 않을것이고, 2번째칸은 eyewear를 입거나 입지 않을 것이다.
그럼 경의의 수는 (2+1) * (1+1) 이 된다. 여기서 +1은 '입지 않는 경우'를 더한 것이다.
그리고 모두 안입은 경우를 빼야 하므로 -1을 해줘야 한다.
최종적으로
(2+1) * (1+1) -1 이 답이다.
만약 아래와 같이
a 5
b 4
c 3
d 2
e 1
a,b,c,d,e 다섯가지 종류에 대해 해당 종류 우측의 숫자만큼의 옷을 가지고 있었다면
6*5*4*3*2-1 이 답이 된다.
'PS > Programmers' 카테고리의 다른 글
[자바] 프로그래머스 - 모의고사 [코딩테스트 연습 Lv1] (0) | 2022.04.08 |
---|---|
[자바] 프로그래머스 - 체육복 [코딩테스트 연습 Lv1] (0) | 2022.03.23 |
[자바] 프로그래머스 - 순위 [코딩테스트 연습 Lv3] (2) | 2021.11.12 |
[자바] 프로그래머스 - 3 x n 타일링 [코딩테스트 연습 Lv4] (0) | 2021.10.21 |
[자바] 프로그래머스 - 지형 이동 [코딩테스트 연습 Lv4] (0) | 2021.09.29 |
댓글