붕어의 개발 기록
TIL_0722 본문

7월 22일 오늘의 공부일지.....
99클럽을 7월 22일 오늘부터 시작하게 되었다.
문제를 해결하고, 원래 공부중인 게시판 만들기를 하고 있으나, 게시판 만들기는 오늘 제대로 해결된게 없기에.....
문제는 n^2 배열 자르기 였다.

문제에서의 2차원 배열은 다음과 같은 형식으로 진행이 되게 된다.
1 2 3 4 5
2 2 3 4 5
3 3 3 4 5
4 4 4 4 5
5 5 5 5 5
행과 열 중 큰 값에 1을 더한 값과 해당 칸의 값이 같은것을 알 수 있다.
이를 행을 기준으로 1차원 배열로 잘라서 만든 후 left 인수부터 right 인수까지 수를 출력하게 되는 문제가 되겠다.
주석에 일단 생각을 적어뒀지만 1차원 배열로 만든 2차원 배열의 원래 인덱스 값은 다음과 같다
arr[00, 10 ,20, ....,n0,01,11,21,...n1,...,nn]
여기서 인덱스가 i번째인 수는 2차원 배열을 기준으로
i를 n으로 나눈 몫+1을 행값, i를 n으로 나눈 나머지 값+1을 열값으로 가지는 인덱스를 가진 값이며
이를 비교하기위해 max를 사용하여 값을 추출해낼 수 있다.
식은 다음과 같다.

위와 같은 코드로 테스트 코드를 모두 성공으로 끝냈다.

여기서 끝내면 서운하니, Arrays와 Math를 한번 짚고 넘어가려고 한다.
Arrays는 별도의 패키지(import.java.util.Arrays)를 import 하여 사용할 수 있으며, Math도 동일하게 별도의 패키지(java.lang.Math)를 import 하여 사용할 수 있다.
Arrays
| 메서드 명 | 설명 | 리턴 타입 |
| Arrays.toString | 배열을 문자열로 바꾸어 출력한다. | string |
| Arrays.sort | 배열을 정렬한다. 평균 : O(nlog(n)) / 최악 : O(n^2), (퀵정렬과 시간복잡도 비슷) | void |
| Arrays.asList(array) | 배열을 arraylist로 형변환을 해주는 함수. | List<array> |
| Arrays.copyOf(array, lengh) | 배열 전체를 복사하여 길이(length) 만큼 복사해주는 함수. | array[] |
| Arrays.copyOfRange(array, left, right) | 원본 배열의 left 인덱스부터 right 인덱스까지를 복사해주는 함수. | array[] |
| Arrays.fill(array, n) | 배열 내에 동일한 값 n으로 채워주는 함수.(파라미터를 (array,left,right,n)으로 적으면 해당 left 인덱스부터 right 인덱스까지를 동일한 값 n으로 채운다.) | void |
| Arrays.equals(array1, array2) | 두 배열이 같은 객체인지를 비교해주는 함수.(두 배열의 요소의 개수와 쌍이 같은지) | boolean |
| Arrays.binarySearch() | 배열의 요소를 검색해서 해당 요소의 인덱스를 반환 하는 함수. | (int) index |
Math
| 메서드 명 | 설명 |
| Math.abs() | 넘겨진 인수의 절대값을 반환해주는 함수. |
| Math.random() | 특정 범위 내의 난수를 반환해주는 함수. |
| Math.max(a,b) | a와 b중 더 큰 수를 반환해주는 함수. |
| Math.min(a,b) | a와 b중 더 작은 수를 반환해주는 함수. |
| Math.pow(a) | a의 제곱을 반환해주는 함수. |
| Math.sqrt(a) | a의 제곱근을 반환해주는 함수. |
| Math.round(a) | a의 소숫점자리를 반올림하여 반환해주는 함수. |