인프런 커뮤니티 질문&답변
1-J 다른 풀이 방법 질문드립니다.
작성
·
228
0
제가 처음에 접근했던 방법은 옷의 개수가 3가지라면 3C0 + 3C1 + 3C2 + 3C3으로 입을 수 있는 모든 경우의 수를 구한 후, 같은 종류의 옷을 입은 경우의 수를 구해 빼는 방식이였는데void combi(int start, vector b){ if(b.size() == k){ print(b); return; } for(int i = start + 1; i < n; i++){ b.push_back(i); combi(i, b); b.pop_back(); } return; }이 함수를 사용해서 map<string,string>mp을 선언하고 옷의 이름과 종류 모두 입력 받아서 같은 종류의 옷을 입은 경우를 판별하여 구할 수는 없는지 여쭤보고 싶습니다.
답변 1
0
큰돌
지식공유자
안녕하세요 ㅎㅎ
3C0 + 3C1 + 3C2 + 3C3
...
옷의 이름과 종류 모두 입력 받아서 같은 종류의 옷을 입은 경우를 판별하여 구할 수는 없는지 여쭤보고 싶습니다.
>>
그렇게 해도 됩니다.
다만 우리가 구하고자하는 것은 그런 경우의 수라 굳이 조합을 모두 다 구해내서 >> 더해서 >> 경우의 수를 구할 필요는 없습니다.
그리고 그렇게 하면 더 힘들어집니다. 예를 들어.
3
hat headgear
sunglasses eyewear
turban headgear
앞과 같은 경우.
head : 2,
eye : 1입니다.
이 경우
2C1 * 1C0 +
2C0 * 1C1 +
2C1 * 1C1 +
이렇게 되서 5가 나오는데요.
조금 복잡하죠..?
되긴 됩니다 ㅎㅎ
그러나 추천드리지는 않는 방법입니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.





