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

dkswhdgur1209님의 프로필 이미지
dkswhdgur1209

작성한 질문수

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

2-G

2-G질문입니다!

작성

·

250

0

http://boj.kr/55247ead26af4d899a6531ad34efeb6f

저는 21행에 벡터v에 mp.first와 mp.second을 집어넣을때, 서로의 위치를 바꿔서 넣어주지 않고,

이에 맞춰서 bool형의 cmp함수를 작성하였더니

입력값이 2 2 2 1 1 일땐, 출력값이 2 2 2 1 1 로 잘 나오지만

입력값이 2 2 2 1 1 1일땐, 출력값이 1 1 1 2 2 2로 나와서 틀리게 됩니다.

어디가 틀렸는지 모르겠어서 질문 드립니다!

답변 1

1

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

안녕하세요 1209님ㅎㅎ

다른 거 너무 잘 짜셨는데요.

이런 실수를 하셨습니다.

bool cmp(pair<int, int> a, pair<int, int> b){
	if(a.second == b.second) {
		return mp_2[a.first] < mp_2[b.first];
	}
	return a.second > b.second;
}

if문안에 있는 부분이요. 앞의 코드처럼 second를 >> first로 바꾸어야 하는게 아닐까요?

 

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

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

감사합니다.

강사 큰돌 올림.

dkswhdgur1209님의 프로필 이미지
dkswhdgur1209

작성한 질문수

질문하기