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

안유선님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

우선순위 큐 마무리

class Knight의 CompareTo 인터페이스

21.02.08 21:29 작성

·

252

0

Knight 클래스의 CompareTo 인터페이스에서 삼항연산자를 이용해서 Id > other.Id ? 1 : -1 라는 조건을 만드셨는데

if (_heap[now].CompareTo(_heap[next]) < 0) 를 사용하신 특별한 이유가 있을까요?

Id > other.Id 가 아닐 경우 -1이라는 특정한 값을 return 한다고 설정했다면 

if (_heap[now].CompareTo(_heap[next]) == -1) 를 사용하는게 맞지 않나 싶어서 질문드립니다.

답변 2

1

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

2021. 02. 08. 21:37

CompareTo에서 -1 , 0, 1을 리턴하는게 일반적이고
Knight도 그렇게 만들긴 했지만
원칙상 음수/0/양수 로 구분하기 때문에 <0으로 판별했습니다.
그런데 딱히 중요한 부분은 아니고 == -1을 해도 무방합니다.

0

안유선님의 프로필 이미지
안유선
질문자

2021. 02. 08. 21:38

감사합니다!