Google 태그 관리자 아이콘
반응형

LeetCode 132

.leetcode(80. Remove Duplicates from Sorted Array II)

https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/ 1. 2022.04.16 시도 소요시간: 11분 class Solution { public int removeDuplicates(int[] nums) { int prev = 0; int counter = 1; for (int i=1; i2) { continue; } } else { counter=1; } prev++; nums[prev] = nums[i]; } return prev+1; } } 풀이 접근 과정 1탄하고 거의 비슷한 원리다. 다만 2번이라는 최대치가 있으니 그걸 어떻게 처리할지에 대한 로직만 조금 추가해주면 된다. prev에는 마지막 저장된 인덱스를 저장하고, i로 ..

알고리즘 풀이 2022.04.16

.leetcode(1089. Duplicate Zeros)

https://leetcode.com/problems/duplicate-zeros/ 1. 2022.04.16 시도 소요시간: 4분 class Solution { public void duplicateZeros(int[] arr) { for (int i=arr.length-1; i>=0; i--) { if ( arr[i] == 0) { for (int j=arr.length-2; j>=i; j--) { arr[j+1] = arr[j]; } } } } } 풀이 접근 과정 뒤에서부터 접근하면 더 편리하게 0의 배열을 관리할 수 있다. 0을 발견할 때, 그전껄 하나씩 쉬프트하는 방식으로 구현하였다. 느낀점 내가 푼 풀이보다 훨신 좋은 풀이가 있어서 소개한다. O(n)의 시간복잡도로 풀 수 있다. 원리는 0의 갯..

알고리즘 풀이 2022.04.16

.leetcode(1295. Find Numbers with Even Number of Digits)

https://leetcode.com/problems/find-numbers-with-even-number-of-digits/ 1. 2022.04.16 시도 소요시간: 3분 class Solution { public int findNumbers(int[] nums) { int counter=0; for (int each: nums) { if ((each+"").length() % 2 == 0) { counter++; } } return counter; } } 풀이 접근 과정 문자로 치환하고 length를 구한다. 느낀점 수학적으로 접근하는 코드를 보고 옮겨본다. 이것도 흥미롭다. log10을 취함으로써 10진수 자리수를 알게 되고 그 자리수 갯수를 이용해 푸는 방식이다. class Solution { p..

알고리즘 풀이 2022.04.16

.leetcode(485. Max Consecutive Ones)

https://leetcode.com/problems/max-consecutive-ones/ 1. 2022.04.16 시도 소요시간: 3분 class Solution { public int findMaxConsecutiveOnes(int[] nums) { int max = 0; int sum = 0; for(int num: nums) { if (num == 1) { sum++; continue; } max = Math.max (sum, max); sum = 0; } max = Math.max (sum, max); return max; } } 풀이 접근 과정 1이 나올때마다 1을 더해준다. 0이 나오면 최대값을 갱신해준다. 마지막에 최대값을 확인해준다. 느낀점 ... 알고리즘 정리노트: .leetcode(..

알고리즘 풀이 2022.04.16

.leetcode(797. All Paths From Source to Target)

https://leetcode.com/problems/all-paths-from-source-to-target/ 1. 2022/04/14 시도 소요시간: 23분(5분 구상, 18분 코딩) class Solution { private List answers; public List allPathsSourceTarget(int[][] graph) { answers = new ArrayList(); int[] visited = new int[graph.length]; Arrays.fill(visited, -1); dfs(graph, 0, graph.length-1, visited, 0); return answers; } public void dfs(int[][] graph, int s, int d, int[] ..

알고리즘 풀이 2022.04.14
반응형