인프런 커뮤니티 질문&답변

wlsdnr929님의 프로필 이미지
wlsdnr929

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

4-A

반례를 다 해봐도..

작성

·

286

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

http://boj.kr/3dcbdac3a6c248f7af9feda6f9620739

안녕하세요 강사님, 질문 게시판에 있는 반례와 백준 질문검색에 있는 반례를 전부 다 해봐도 정답으로 나오는데 계속 틀렸다고 뜹니다...너무 답답하네요

이유를 알 수 있을까요??

감사합니다.

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요. wls님 ㅎㅎ 정말 잘 짜셨네요. clear()하면서 vector 재할당. pow를 사용하는 점.

그러나.

아래의 2가지를 좀 고쳐주시면 더 완벽할 거같아요. ㅎㅎ

pow는 double형을 반환하니 이거 사용할 때 int형으로 쓰고 싶을 때는 타입변환하셔야 되요(교안참고)

 

아마 이부분이 틀린 거 같은데요.만약 sum_cost가 min_cost보다 작을 때 min_cost = sum_cost가 됩니다. 그리고 그 밑에 if == 문을 "무조건" 들어가게 되는 거 아닌가요?

			if (sum_cost < min_cost) {
				min_cost = sum_cost;
				min_bit.clear();
				min_bit = cur_bit;
			}
			// 같을 경우 사전순
			if (sum_cost == min_cost) {

 

wlsdnr929님의 프로필 이미지
wlsdnr929
질문자

아 그게 문제였군요.. 감사합니다!!

강사님 말씀을 토대로 if문안에 continue를 추가해서 해결하였습니다.

감사합니다~!

wlsdnr929님의 프로필 이미지
wlsdnr929

작성한 질문수

질문하기