본문 바로가기

Algorithm22

[Java] 35. Search Insert Position 문제 설명 : - 1차원 int 배열과 target 숫자를 주고, target이 배열내에 존재하면, 해당하는 Index를 return - 존재하지 않으면, 정렬에 맞춰 삽입되어야 하는 index를 return하는 문제이다. - 조건으로는 시간복잡도가 O(log n) 보다 작아야하는 조건이기 때문에 이진탐색과 해시맵 등을 활용할 수 있는데, 이진탐색으로 해결해보았다. class Solution { public int searchInsert(int[] nums, int target) { //binary search :: O(log N) int left = 0; int right = nums.length -1; while(left 2023. 6. 8.
[Java] 28. Find the Index of the First Occurrence in a String 문제 설명 : String에서 indexOf 함수를 알고있는지 물어보는 문제이다. 또는 indexOf 를 구현하는 문제이다. class Solution { public int strStr(String haystack, String needle) { return haystack.indexOf(needle); } } 해설 : Java에서는 String 클래스가 indexOf를 지원하기 때문에 이를 활용해 문제를 해결했다. 2023. 6. 8.
[Java] 27. Remove Element 문제 설명 : 지난 문제와 동일하게 답안을 확인하는 코드 양식이 정해져있었습니다. 문제 자체는 주어진 1차원 배열에서 주어진 val값을 제외시키면 되는 아주 간단한 문제였습니다. class Solution { public int removeElement(int[] nums, int val) { int n = nums.length; int k = 0; if (n == 0) { return 0; } //k는 현재 중복되지 않은 nums의 위치 for (int i = 0; i < n; i++) { if (nums[i] != val) { nums[k] = nums[i]; k++; } } return k; } } 해설 : 지난 문제와 마찬가지로 k의 값을 포인터 처럼 활용해서 이동시키고, val과 현재 값을 비교.. 2023. 6. 7.
[Java] 26. Remove Duplicates from Sorted Array 문제 설명 : - 이 문제는 문제보다 설명을 이해하는게 더 어려웠습니다. - 문제를 찾아서 확인해보시면, 문제 자체는 단순히 Array에서 중복값을 제거하는 문제인데 답안확인 코드의 규격이 정해져 있는 형태였습니다. class Solution { public int removeDuplicates(int[] nums) { int n = nums.length; int k = 1; if (n == 0) { return 0; } //k는 현재 중복되지 않은 nums의 위치 for (int i = 1; i < n; i++) { if (nums[i-1] != nums[i]) { nums[k] = nums[i]; k++; } } return k; } } 해설 : - 우선 이런 문제 유형을 처음봐서 조금 당황해서 검색.. 2023. 6. 7.