inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

1. 씨름선수

comparable관련 질문입니다.

177

ehdtjqzz

작성한 질문수 2

0

안녕하세요.

씨름선수 문제를 풀다가 궁금한 점이 생겨 글남깁니다.

 

comparable 을 구현하여 compareTo를 정의할 때 선행원소 - 후행 원소 가 음수이면 자리를 바꾸지 않고, 양수이면 자리를 바꾸는 것으로 알고 있습니다.

문제 코드를 예시로 들어서 return this.h - o.h 라면 선행원소가 this.h 이고 후행원소가 o.h 라는 것은 어떻게 알 수 있나요? 물론 외우면 되긴 하지만 원리가 궁금합니다.

 

두서 없는 글 읽어주셔서 감사합니다.

java 코딩-테스트

답변 1

0

인프런 AI 인턴

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

Comparable 인터페이스의 compareTo 메서드는 두 객체를 비교하는 기능을 구현할 때 사용됩니다. 이 메서드에서 비교 대상이 되는 객체는 this로 표현되고, 비교되는 다른 객체는 메서드의 파라미터로 전달됩니다. 따라서 this.h - o.h 구문에서 this.h는 현재 객체의 h 속성 값을 가리키고, o.h는 비교 대상 객체의 h 속성 값을 가리키게 됩니다.

compareTo 메서드는 비교 결과에 따라 음수, 0, 양수 중 하나를 반환하며, 이 값에 따라 객체의 정렬 순서가 결정됩니다. 반환 값이 음수인 경우 this 객체가 비교 대상 객체보다 작다는 것을 의미하고, 양수인 경우 크다는 것을 의미합니다. 정렬의 원리와 관련하여, 자바의 정렬 메커니즘은 이 반환 값을 사용하여 두 객체의 위치를 결정하게 됩니다.

원리적으로 보면, compareTo를 호출하는 순간의 상황에서 this는 호출 주체가 되며, 파라미터로 전달된 객체(o)는 비교 대상이 됩니다. 이 관계를 이해하면, thiso 사이에서 누가 선행 원소고 누가 후행 원소인지 파악하는 데 필수적입니다.

마지막으로, compareTo 메서드 내에서 this.ho.h를 비교하는 로직은 개발자가 정의하는 비교 기준에 따라 달라지므로, 명확한 비교 기준을 설정하는 것이 중요합니다. 이러한 비교 기준에 따라 정렬이 이루어지게 됩니다.

질문에 답변이 되었기를 바랍니다. 추가적인 질문이 있으시면 언제든지 문의해주세요.

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

0

21

1

갑자기 채점 사이트가 바뀌었어요

0

29

1

문제 리스트 페이지

0

25

1

채점 사이트 관련 질문드립니다

0

23

1

봉우리 문제 질문입니다

0

79

2

씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?

0

63

0

이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?

0

70

0

가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법

0

67

1

좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ

0

84

2

6-7 강의에서

0

47

1

6-6. 장난꾸러기 질문 있습니다.

0

43

1

강의 수강후 코딩테스트

0

106

1

answer 변수 사용 여부

0

43

1

2중 for문

1

84

2

2-11. 임시반장정하기 (Runtime Error)

0

63

1

혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?

0

69

1

이런 풀이는 어떨까요

0

42

1

자바 스트림 방식의 효율성 질문 드립니다.

0

55

1

알고리즘 자료 구조들..

0

60

1

StringBuilder vs BufferdWriter

0

47

1

원더랜드(프림)

0

48

1

이런 코드는 어떤가요?

0

59

1

bfs 풀이

0

56

1

병합정렬

0

55

1