sce9573   4년 전


 안녕하세요.

방금 전에 숨바꼭질 3 문제를 풀었는데, 구조체를 이용해서 우선순위 큐를 정렬한 것은 '틀렸습니다.'가 뜨고 pair를 사용해서 우선순위 큐를 정렬한 것은 '맞았습니다.'가 뜹니다.

제가 생각하기에 두 결과가 똑같은 것 같은데 아래 두 코드의 차이점을 알 수 있을까요? ㅠㅠ

감사합니다.

clrmt   4년 전

당연하겠지만 우선순위 큐는 stable하지 않기 때문에 같은 우선순위를 가진 값은 아무렇게나 들어있습니다. 반면 pair는 첫 번째 값을 기준으로 정렬, 값이 같으면 두 번째 값을 기준으로 정렬해줍니다.


1 6 이라는 값을 넣으면 0회차에서는 1, 2, 4, 8 ... 정상적으로 올라가지만


1회차에서 7과 3이 존재하는데 7을 탐색하는 과정에서 visit[6]을 cnt = 2상태로 미리 먹어버립니다. 같은 1회차에서 3을 탐색할 때 6을 이미 방문했으므로 cnt = 1로 먹지 못하기 때문에 2가 출력되는 문제가 있습니다.

sce9573   4년 전

계속 고민했었는데 이런 이유였군요 ㅠㅠ

정말 감사합니다!!!!!

댓글을 작성하려면 로그인해야 합니다.