inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

정말 쉽게 풀어보는 코딩 테스트 top 기본 문제 (with 자바)

미팅룸(Meeting Room)

Compartor

200

서명석

작성한 질문수 2

3

Meeting 룸에서 

compare 메서드의 o1.start - o2.start를 했는데

배열 정렬시 기준으로 삼을 return 값을 어떻게 해서

o1.start - o2.start 는 오름차순이고

o2.start - o1.start는 내림차순이 되는건지 잘 모르겠습니다

java 코테 준비 같이 해요!

답변 1

2

푸샵맨 코딩스터디

안녕하세요?

먼저 제가 예제를 올려놨습니다. github 에 javacoding_top50/01_Basic/CompareTest.java

돌려보시면 됩니다.

compare는 많이 나오는 예제이므로 완전히 이해해야하죠. 특히 스트링 소팅이런건 단골 메뉴입니다.

1. 먼저 Comparator를 이해하기 위해서는 compareTo() 메서드를 완전히 이해해야합니다.

예를들어)[5,3,8]을 compareTo() 를 이용하여 비교할때

5.compareTo(5) 이면 리턴값이 0 

5.compareTo(3) 이면 리턴값이 1

5.compareTo(88) 이면 리턴값이 -1

이렇게 나옵니다.

compareTo를 베이스로 소팅을 만들었기에, 리턴값이 1일때 오름차순으로 소팅이 됩니다.(예제를 돌려보시면 알 수 있습니다)

그래서 질문주신

"o1.start - o2.start 는 오름차순이고

o2.start - o1.start는 내림차순이 되는건지 잘 모르겠습니다"

앞에 숫자가 크면 리턴값이 1이되고 오름차순이 되는거죠, 내부적으로 compareTo가 동작한겁니다.

아래 1번과 2번은 오름차순 셋팅입니다.

//1

Comparator<Student> comp2 = new Comparator<Student>() {

public int compare(Student s1, Student s2) {

                 return s1.score - s2.score;

}

};

 

//2

Comparator<Student> comp = new Comparator<Student>() {

@Override

public int compare(Student s1, Student s2) {

if (s1.getScore() > s2.getScore()) {

return 1;

} else if (s1.getScore() < s2.getScore()) {

return -1;

}

return 0;

}

};

강의자료에 나오는 m과 n의 범위가 코딩하고 다른거 같습니다

0

254

0

나선형매트릭스 깃허브에 코드가 없는것같아요

0

210

0

로그 파일의 데이터 재정렬 코드가 깃허브에 없어요!

0

225

0

새로 생긴 기초강의 질문드려요

1

376

1

질문드립니다

1

220

1

Unique Paths Integer 질문입니다

0

219

1

subString 방법으로 문제 풀이 영상은 짤린건가요?

1

253

1

DFS 방식으로 푼 것이 맞나요?

0

309

2

질문드립니다~

0

196

1

left if문에 대해서

1

257

1

오타 인가요?

1

237

1

안녕하세요 강사님

1

190

1

질문 드립니다

0

172

2

Queue&Stack 문제해설집 문의

0

183

1

문제분석 로직 질문

1

230

1

시간 복잡도 문의드립니다.

1

232

1

시간복잡도 질문드립니다.

1

202

1

for-each 문 질문있습니다!

0

295

1

강의영상에서 사용된 로그 메소드가 궁금합니다.

2

282

2

강의자료 + 문제 이해 관련 질문입니다

1

278

3

강사님 오류맞나요?

1

208

1

강사님 시간 복잡도에 대해서 질문드립니다.

1

174

1

질문입니다.

1

203

1

문제에 대한 이해

1

313

1