99클럽 코테 스터디 2일차 TIL - 42578 의상
42578. 의상 / c++ / level2 / 8분
문제 및 코드
접근 방식
자료구조 / 해시
- 매일 다른 옷을 입어야 하고 종류별로 최대 1가지 의상을 착용하거나 착용하지 않을 수 있는데, 최소 1가지의 옷은 입어야 한다.
- 문제를 보고 든 생각은 종류 (카테고리) 별로 옷을 나누고, 그 옷들의 조합의 수를 구하는 것이었다.
- 이 때 주의해야 할 점은 3가지이다.
- 각 종류별로 1가지를 입거나 입지 않을 수 있기 때문에 종류의 가짓수 + 1을 한 값에서 조합을 구해야 한다.
- 최소 1개의 옷을 입어야 하기 때문에 모두 입지 않은 경우는 빼야한다.
- 마지막으로 옷의 종류가 1가지만 있는 경우 1번과 2번이 상충되어 해당 종류의 가짓수를 그대로 출력한다.
생각해 볼 점
- 챌린저 문제를 한참 고민하다 시간이 촉박하여 미들러 문제를 풀게 되었다.
- 해싱을 통해 데이터를 정리 (나는 이것을 재료 손질이라고 부른다.) 하고 그 데이터를 가지고 추가적인 로직(여기서는 조합)과 예외 조건 등을 처리하는 문제였다.
- 해싱은 그 자체로 문제 해결 알고리즘이 될 수 있지만, 이렇게 문제를 풀기 위한 사전 작업이 될 수도 있다는 점을 다시 한번 깨달았다.
해시태그
#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL