본문 바로가기
PS/Programmers

[자바] 프로그래머스 - 위장 [코딩테스트 연습 Lv2]

by Nahwasa 2021. 11. 8.

[ 문제 링크 ]

[ 코드 링크 ]

 

문제 출처 : 프로그래머스 코딩 테스트 연습

 

 

  각 의상 종류에 해당하는게 몇 가지씩인지만 알면 된다.

이 때 의상 이름의 경우 '같은 이름을 가진 의상은 존재하지 않습니다.' 에 따라 의미가 없으므로 버려도 된다.

 

즉, 예제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 이 답이 된다.

 

댓글