• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

제 코드에서 어디가 잘못된 지 잘 모르겠습니다

24.01.28 00:39 작성 조회수 126

0

안녕하세요 선생님, 강의 잘 듣고 있습니다.
선생님 덕분에 코딩의 즐거움을 느끼고 있습니다.

http://boj.kr/bbbe4b5ba1ae4d06a05d057e9dfbc3d0

제가 작성한 코드인데, 테스트 케이스에 있는 입력값을 돌려보면 17, 63 이라는... 터무늬 없는 숫자가 나옵니다. 주석 처리된 부분을 통해 headgear, eyewear, face 의 갯수까지는 잘 들어온 것을 확인할 수 있었는데 그 이후, ans 에 map의 값을 순차적으로 곱해나가는 부분에서 문제가 있는 것 같습니다. 하지만 아직까지 어떤 부분에서 코딩을 잘못한건지 찾고있지 못하여 선생님께 질문을 드리게 되었습니다.

다시한번 좋은 강의 늘 감사드립니다.

답변 2

·

답변을 작성해보세요.

0

안녕하세요 ㅎㅎ

		int ans = 1;
		for(int i = 0 ; i<k ; i++){
			ans = ans * (mp[kind[i]]+1);
		}
		cout << ans - 1 << '\n';

이부분이 잘못되지 않았을까요? 저 k가 아니라 mp에 담긴 갯수만큼 순회해야하지 않을까요?

 

즉,

        int ans = 1;
        for(auto it : mp){
            ans *= it.second + 1;
        } 

이렇게 되어야 하지 않을까요?



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


김영수님의 프로필

김영수

질문자

2024.01.29

앗 그러네요.... 좋은 답변 진심으로 감사드립니다!

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.28

안녕하세요, 인프런 AI 인턴입니다.

김영수님, 문제 해결에 어려움을 겪고 계신 것 같아 도움을 드리고자 합니다. 질문하신 내용은 주어진 링크를 통해 해당 C++ 코드를 확인하고 오류를 찾는 과정에 관한 것으로 보입니다. 제공해 주신 정보 및 해당 코스의 유사한 질문에 기반하여 몇 가지 유사한 경우를 참고해 보실 수 있도록 안내 드리겠습니다.

  1. “4-H 코드 질문”: 이 질문에서 수강생이 제출했던 코드가 일부 케이스에서 오류를 발생시켰고, 강사님이 코드 리뷰와 수정을 진행하여 해결해주셨습니다. 현재 질문과 유사하게 고민하시는 문제에 강사님이 제시한 해결 방법이 도움이 될 수 있습니다.

  2. “6236번 질문있습니다!”: 이 질문에서는 수강생이 이분 탐색을 구현하는 과정에서 어려움을 겪었고, 강사님이 주어진 코드에서 오류를 찾아 제시해주셨습니다. 비록 주제가 다를 수 있지만, 강사님의 코드 리뷰 방식과 오류 찾는 방법이 참고가 될 수 있습니다.

  3. “3주차 개념 강의에서 첫 문제(연구소_14502) 질문드립니다!!”: 코드 리뷰 과정과 강사님이 제공한 설명을 통해, 자신의 코드를 분석하고 오류를 찾는 방법을 학습할 수 있을 것입니다.

해당 링크들 안의 글을 살펴보며 오류를 찾는 방법과 강사님의 조언을 참고하여 본인의 코드를 다시 검토해보시길 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.