작성
·
158
0
안녕하십니까 큰돌님
코드를 작성했었는데 틀렸다고 하는데 반례 어떤게 있을까요 ??
반례와 왜 안 되는지도 설명 한 번 부탁드립니다 ㅜㅠ
답변 2
0
if 문 코드는 headgear, eyewear, face 등과 같이 의상의 종류가 1개 이상이면 경우의 수를 곱하는 작업입니다.
마지막에 n을 더해준 이유는 의상의 종류가 1개일 때는 if문이 작동 안하니까 의상의 갯수만큼 더해줬습니다 ..!
0
안녕하세요 대기업님 ㅎㅎ
혹시 이 코드 설명 가능하실까요?
if (mp.size() > 1) {
ret = 1;
for (int j = mp.size(); j > 1; j--)
ret *= j;
}
cout << n + ret << "\n";
mp에 쌓으신 것은 잘하셨습니다. ㅎㅎ
감사합니다.
음...
저 j가 mp.size()고 사실 mp에는 해당 종류마다 카운팅되어있는 수가 들어있잖아요.
예를 들어
mp[1] = 3;
mp[2] = 4;
이렇게 들어있겠죠.
이 종류가 몇개 들어있냐. 를 기반으로 로직을 짜야 합니다. 예를 들어 헬멧이 10개, 윗옷이 10개라면 경우의 수는 100 - 1인 99가 되겠죠?
즉 3, 4를 기반으로 로직을 짜야 합니다.
근데 여기서 갑자기 의상의 종류의 수를 나타내는 (앞의 코드에서는 2가 되겠죠?) mp.size()부터 곱하기를 하는 부분은 잘못된 것 같습니다.