강의영상에서 사용된 로그 메소드가 궁금합니다.
강의 후반부에서 print()라는 메소드를 통해 2차원 배열을 출력하셨는데 이게 어떤것인지 알 수 있나요? 보통 System.out.println()이걸 쓰는데 자바에서 저런 메소드도 있었나 궁금합니다!
또 (a, b) -> a[0] - b[0]같은 람다식에서 정렬을 할 때 저 마이너스 기호가 실제 정수에서의 뺴기연산이 맞지요?? 인자로 왜 저런 형태로 넘어가는지 잘 이해가 안갑니다 ㅠㅠ
간략하게나마 설명해주시면 감사하겠습니다!
Câu trả lời 2
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가 파이썬보다 좀 복잡합니다. ㅜㅜ;
개념을 잘 잡으시면 됩니다.
아래는 캡쳐했어요.참고하세요~
강의자료에 나오는 m과 n의 범위가 코딩하고 다른거 같습니다
0
252
0
나선형매트릭스 깃허브에 코드가 없는것같아요
0
206
0
로그 파일의 데이터 재정렬 코드가 깃허브에 없어요!
0
220
0
새로 생긴 기초강의 질문드려요
1
372
1
질문드립니다
1
218
1
Unique Paths Integer 질문입니다
0
217
1
subString 방법으로 문제 풀이 영상은 짤린건가요?
1
250
1
DFS 방식으로 푼 것이 맞나요?
0
305
2
질문드립니다~
0
194
1
left if문에 대해서
1
253
1
오타 인가요?
1
235
1
안녕하세요 강사님
1
186
1
질문 드립니다
0
170
2
Queue&Stack 문제해설집 문의
0
182
1
문제분석 로직 질문
1
227
1
시간 복잡도 문의드립니다.
1
229
1
시간복잡도 질문드립니다.
1
199
1
for-each 문 질문있습니다!
0
292
1
강의자료 + 문제 이해 관련 질문입니다
1
276
3
강사님 오류맞나요?
1
204
1
강사님 시간 복잡도에 대해서 질문드립니다.
1
170
1
질문입니다.
1
200
1
문제에 대한 이해
1
312
1
visited 체크 시점 질문있습니다!
1
504
1

