- 진행
일자 | 완료 번호 |
24.07.16 | 1~20 |
24.07.17 | 21~35 |
24.07.18 | 36~42 |
- 회고
- 최대공약수, 최소공배수 구하기
* 유클리드 호제법
- 구현
- 에러발생
0으로 나누기 시도
- 이유 : 처음 구현 시 최대공약수 값에 s를 대입했는데
while문의 조건에 s가 0이 아닐 때 까지이다, 그러므로 최종 s는 0이되게된다.
그렇기 때문에 최대공약수는 0이되기전 s 즉 tmp에 저장해둔값이 된다. - 배열에서 세수의 합이 0이되는 경우 찾기
- 개선전
삼중 for문으로 시간복잡도가 O(n^3)이된다.
for문 중첩은 비효율적이므로 다른방법을 찾아봤다.
class Solution { public int solution(int[] number) { int answer = 0; for(int i = 0; i < number.length - 2; i++){ for(int j = i + 1; j < number.length - 1; j++){ for(int q = j + 1; q < number.length; q++){ if(number[i] + number[j] + number[q] == 0){ answer++; } } } } return answer; } }
- 개선후
- 개선전
'Java & Spring > 코딩테스트' 카테고리의 다른 글
6일차 - 알고리즘 코드카타 (0) | 2024.07.22 |
---|---|
5일차 - 알고리즘 코드카타 (0) | 2024.07.19 |
3일차 - 알고리즘 코드카타 (0) | 2024.07.17 |
2일차 - 알고리즘 코드카타 (0) | 2024.07.16 |
NeetCode - Two Pointers (0) | 2024.06.07 |