@@ -9,3 +9,52 @@ image: assets/img/TIL.png
99## 오늘 배운것
1010- 코딩 테스트 볼때 자주 발생하는 실수 또는 오류에 대해 배움
1111
12+
13+ ### 예상치 못한 음수가 발생하는 경우
14+ 주로 정수형에서 많이 발상해고 대략 21억의 값이 넘어갈때 표현 범위를 넘어서 발생한다.
15+ ` 형변환 ` 으로 범위를 늘려주면 된다.
16+
17+
18+ ### 시간초과의 원인을 찾아 해결
19+ 문제에서 시간초과는 두가지 이유로 발생할 수 있다.
20+
21+ 1 . 작성한 로직의 시간 복잡도가 주어진 시간을 넘어가는 경우
22+ 2 . 데이터 입출력의 횟수가 많은 경우
23+
24+ 데이터 입출력에 Scanner, print, BufferedReader, BufferedWriter 쌍으로 많이 사용된다.
25+
26+ 데이터의 입출력의 횟수가 적으면 둘의 차이가 많이 안나지만 많아지는 순간 둘의 실행속도의 차이가 많이 발생한다.
27+
28+ ### 인덱스에 의미 부여하며 풀기
29+ 인덱스가 데이터의 순서에 대한 의미는 잘 알고 있다.
30+ 문제를 풀땐 데이터의 순서에 대한 의미 말고도 특정 값의 갯수 등... 여러 의미를 부여해서 문제를 해결할 수 있다.
31+
32+ ### 나머지 연산의 중요성
33+ 코테 문제에서 나머지 연산 문제는 꽤 많이 존재한다. 그리고 나머지 연산 구할때 함정 문제도 존재한다.
34+ 1 ~ 50 까지의 곱을 10007로 나눈 나머지를 구하라는 문제를 보면
35+ ` long ` 타입으로 선언해도 음수가 나오게 된다. 그래서 분배 법칙에 대해 알아야한다.
36+
37+ #### 분배법칙
38+ - 덧셈, 뺄셈, 곱셉에 분배법칙이 적용된다.
39+ - 반복문 내에서 3개의 연산자가 존재한다면 나머지를 구한뒤 최종 나머지 값을 구해도 동일한 값이 나온다.
40+
41+ ### 정렬기초
42+ - ` Arrays.sort(arr) ` : 기본자료형 배열의 오름차순 정렬
43+ - ` Arrays.sort(arr, Collections.reverseOrder()) ` : 참조자료형 배열의 내림차순 정렬
44+ - ` negate(arr); Arrays.sort(arr); negate(arr) ` : 기본자료형 배열 내림차순 구할때 음수로 바꾸고 오름차순 정렬한 뒤, 다시 양수로 변환
45+
46+ ### 다중 조건 정렬
47+ 객체간의 정렬을 구하기 위해 두개의 인터페이스가 사용된다.
48+ 1 . ` Comparable ` : 객체 내부에 작성됨.
49+ 2 . ` Comparator ` : 객체 외부에 작성됨.자유롭게 생성가능
50+
51+
52+ ## 오늘 회고
53+ 오늘 몸에 염증이 많이 생겼었는지 일하는중에 정신을 못차려서 해야했던 업무를 다 완수하지 못했다.
54+ 건강 챙겨서 빨리 회복하도록 노력해야겠다.
55+ <br >
56+ 그리고 Do it! 알고리즘 책을 사서 알고리즘 공부를 시작하려고 한다. 이제 2일차로 많이 공부하지 못했지만
57+ 새로운 지식분배법칙을 알게되었고, 까먹었고 자주사용하지 않은 지식정렬조건, 다중정렬에 대해 리마인드 할 수 있어서 좋았다.
58+
59+
60+
0 commit comments