최소 한가지 이상의 의상을 착용할때 겹치지 않는 의상 조합의 수를 돌려주는 문제.
문제를 풀이하다가 예시는 다맞는데 제시되는 테스트 케이스가 상당수가 틀려서 문제접을 확인하기위해 다른 유저들이 사용한 테스트 케이스를 알아보기위해 질문하기를 훝어보다가 수학적인 방식으로 풀이한것을 보게 되었고, 그이후로는 해시방식의 풀이방식을 생각할수가 없게 되어 수학적인 방식으로 풀이를 마무리 하였다.
문제에서 요구하는 조합의 수는 계수가 해당 파츠의 의상 갯수인 미지수에 1을 더하는 수식을 문제에서 주어지는 파츠의 갯수만큼 곱한것과 같다. 문제에서는 최대 4개의 파츠를 사용하므로 최대 4차 방정식의 형태로 계산이 된다.
파츠내 의상 갯수를 각각 a, b, c 로 지정하면(4개의 경우 수식이 복잡해져서...)
(a*x+1)*(b*x+1)*(c*x+1) 가 되고
(abc)x**3 + (ab + bc + ac )x**2 +(a + b + c)x +1
이 되는데 x=1 인 경우 위수식의 합이 조합에 1을 더한 값이 된다.
조합의 값은 abc [주어진 3개의 파츠를 착용할때의 조합수] + (ab + bc + ac ) [2개의 파츠를 착용할때의 조합수] + ( a + b + c) [1개를 착용할때의 조합수 ]
의 합으로구해진다.
위 방식을 통해 문제 풀이를 마무리하였다. 추후 수식 계산이 아닌 다른 방식을통해 풀이를 진행해봐야겠다.
socket.io 서버로 하는 단순한 멀티 룸 채팅.
위의 결과를 server-side로 구현해보기.
firebase 사용법 배우기
serverless lambda 학습하기