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

최용석님의 프로필 이미지

작성한 질문수

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

미팅룸(Meeting Room)

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

해결된 질문

작성

·

140

2

강의 후반부에서 print()라는 메소드를 통해 2차원 배열을 출력하셨는데 이게 어떤것인지 알 수 있나요? 보통 System.out.println()이걸 쓰는데 자바에서 저런 메소드도 있었나 궁금합니다!

또 (a, b) -> a[0] - b[0]같은 람다식에서 정렬을 할 때 저 마이너스 기호가 실제 정수에서의 뺴기연산이 맞지요?? 인자로 왜 저런 형태로 넘어가는지 잘 이해가 안갑니다 ㅠㅠ

간략하게나마 설명해주시면 감사하겠습니다!

답변 2

0

최용석님의 프로필 이미지
최용석
질문자

답변 감사드립니다!

0

최용석님 안녕하세요~

질문주신 내용

1번은 화면에 안 보였네요. 아래처럼 밑에 기술되어 있습니다. github에 소스에 있습니다.

private void print(int[][] grid) {

for (int i = 0; i < grid.length; i++) {

for (int j = 0; j < grid[0].length; j++) {

System.out.print(grid[i][j] + "\t");

}

System.out.println();

}

}

2. 번 내용

자바에서는 Comparator를 이용해서 정렬을 합니다. 저렇게 하는것은 자바에서 오름 차순 약속인데요

Arrays.sort(intervals, (a,b)->a[0]-b[0]);//오름차순

해석을 하자면요 intervals를 a,b로 빼는데요

intervals 이차원배열이지요  a,b로 빼면 형을 한번 벗겨냅니다. 

그러면{ { 7, 10 }, { 2, 4 } } =>  { 7, 10 }, { 2, 4 } 이렇게 나오죠

0번방은 7,2 이잖아요 

이걸 어떻게 해서든지 2,7 순으로 나오게 하는 방법입니다.

두개를 a-b로 한다는 의미는 오름 차순으로 한다는 말입니다.

왜냐면 2-7이 되야 -1을 리턴합니다.  -1을 왜 리턴하냐고 물으시면 자바는 내부에서 CompareTo메소드를 사용합니다.

a-b 가 -1을 리턴하면 오름 차순, a-b=1이면 내림차순 , a=b가 동일하면 같은값입니다. 아래표를 보면 조작할 수 있습니다.

(아래표 2번그림)

즉 자바에서는 a-b=-1을 리턴하면 오름차순으로 만들어주겠다고 약속함.

그리고 그 내부에는 CompareTo()메소드가 존재합니다.

이해가 안되시면 외우시면 되요 일단, a-b를 해서 -1로 리턴하면 오름차순

(오른마: 오름차순은 마이너스를 리턴한다) 

반대로 

Arrays.sort(intervals, (a,b)->b[0]-a[0]);//내림차순이 됩니다.

이해가 잘 안되시면 제 강의 중에 자바개념강의가 있습니다. 자세하게 설명되어 있습니다.

자바에서는 Comparator가 파이썬보다 좀 복잡합니다. ㅜㅜ;

개념을 잘 잡으시면 됩니다. 

아래는 캡쳐했어요.참고하세요~