Leetcode
-
배열의 형태가 첫 번째 그림과 같이 산 모양의 형태인지 판별하는 문제 문제를 풀기 위해서는 제일 큰 값을 가진 요소의 index를 알아내는 것이다. 그 index를 알아내서 그 전까지 계속 증가하는지, index 후에는 계속 감소하는지 판별하면 되는 문제이다. 그리고 index가 0 또는 제일 마지막 인덱스일 때에는 false를 반환해야 한다. class Solution { public boolean validMountainArray(int[] arr) { int length = arr.length; int max = 0; int index = 0; for(int i = 0; i max) { max = arr[i]; index = i; } } if(in..
[리트코드] Valid Mountain Array배열의 형태가 첫 번째 그림과 같이 산 모양의 형태인지 판별하는 문제 문제를 풀기 위해서는 제일 큰 값을 가진 요소의 index를 알아내는 것이다. 그 index를 알아내서 그 전까지 계속 증가하는지, index 후에는 계속 감소하는지 판별하면 되는 문제이다. 그리고 index가 0 또는 제일 마지막 인덱스일 때에는 false를 반환해야 한다. class Solution { public boolean validMountainArray(int[] arr) { int length = arr.length; int max = 0; int index = 0; for(int i = 0; i max) { max = arr[i]; index = i; } } if(in..
2023.12.09 -
arr 배열에서 arr[ i ]가 arr[ j ]의 두 배가 맞으면 true를 반환하고 그렇지 않으면 false를 반환하는 문제 반복문 내에 i와 j가 같지 않을 때 arr[ i ] == arr[ j ] * 2 일 때만 true를 반환시켜주는 코드를 짜면 쉽게 풀리는 문제이다. class Solution { public boolean checkIfExist(int[] arr) { for(int i = 0; i < arr.length; i++) { for(int j = 0; j < arr.length; j++) { if(i != j) { if(arr[i] == 2 * arr[j]) { return true; } } } } return false; } }
[리트코드] Check If N and Its Double Existarr 배열에서 arr[ i ]가 arr[ j ]의 두 배가 맞으면 true를 반환하고 그렇지 않으면 false를 반환하는 문제 반복문 내에 i와 j가 같지 않을 때 arr[ i ] == arr[ j ] * 2 일 때만 true를 반환시켜주는 코드를 짜면 쉽게 풀리는 문제이다. class Solution { public boolean checkIfExist(int[] arr) { for(int i = 0; i < arr.length; i++) { for(int j = 0; j < arr.length; j++) { if(i != j) { if(arr[i] == 2 * arr[j]) { return true; } } } } return false; } }
2023.12.09 -
배열 속 중복된 요소를 지우고 그 자리를 뒤의 요소로 채워야하는 문제이다. 처음에는 되게 어렵게 생각했었다. 새로운 배열을 만들지 않고 어떤 식으로 해결할까 생각하다가 nums[i] == nums[i+1] 일 때 nums[i+1] 자리에 nums[i+2]의 값을 넣어주면 되는 거 아닐까 생각을 했었는데 그런식으로 문제를 푸니 계속 오답이 나왔다. 그래서 result 라는 변수를 선언한 뒤 nums[i] != nums[i+1] 일 때 nums[result] 에 nums[i+1] 를 넣어준다. 그리고 result를 반환해주면 답이 나온다. class Solution { public int removeDuplicates(int[] nums) { int result = 1; for(int i = 0; i < n..
[리트코드] Remove Duplicates from Sorted Array배열 속 중복된 요소를 지우고 그 자리를 뒤의 요소로 채워야하는 문제이다. 처음에는 되게 어렵게 생각했었다. 새로운 배열을 만들지 않고 어떤 식으로 해결할까 생각하다가 nums[i] == nums[i+1] 일 때 nums[i+1] 자리에 nums[i+2]의 값을 넣어주면 되는 거 아닐까 생각을 했었는데 그런식으로 문제를 푸니 계속 오답이 나왔다. 그래서 result 라는 변수를 선언한 뒤 nums[i] != nums[i+1] 일 때 nums[result] 에 nums[i+1] 를 넣어준다. 그리고 result를 반환해주면 답이 나온다. class Solution { public int removeDuplicates(int[] nums) { int result = 1; for(int i = 0; i < n..
2023.12.05 -
배열에서 주어진 val 값과 요소의 값이 일치하는 것을 배열에서 제거한 후 빈 요소가 없게 앞으로 당기는 문제 문제를 처음 접했을 때 '그냥 배열에서 주어진 값과 똑같은 요소를 다 지워버린 다음에 배열의 길이만 return 해주면 되는거 아니야?' 라고 간단하게만 생각했다. 그러나 반환값은 맞지만 만들어지는 배열이 달랐다. 문제를 풀기 전에 리트코드에서 주어진 설명을 읽어보았더니 답이 보였다. 반복문을 돌릴 때 증가 한계점을 아래와 같이 배열의 길이로 뒀었다. 그렇게 되면 문제점이 배열을 반환할 때 배열의 길이가 줄지 않고 그대로 반환한다는 점이었다. for(int i = 0; i < nums.length; i++) 그래서 배열의 길이를 다른 변수로 설정을 해준 뒤 배열의 요소가 주어진 int 값과 같을..
[리트코드] Deleting Items From an Array - Remove Element배열에서 주어진 val 값과 요소의 값이 일치하는 것을 배열에서 제거한 후 빈 요소가 없게 앞으로 당기는 문제 문제를 처음 접했을 때 '그냥 배열에서 주어진 값과 똑같은 요소를 다 지워버린 다음에 배열의 길이만 return 해주면 되는거 아니야?' 라고 간단하게만 생각했다. 그러나 반환값은 맞지만 만들어지는 배열이 달랐다. 문제를 풀기 전에 리트코드에서 주어진 설명을 읽어보았더니 답이 보였다. 반복문을 돌릴 때 증가 한계점을 아래와 같이 배열의 길이로 뒀었다. 그렇게 되면 문제점이 배열을 반환할 때 배열의 길이가 줄지 않고 그대로 반환한다는 점이었다. for(int i = 0; i < nums.length; i++) 그래서 배열의 길이를 다른 변수로 설정을 해준 뒤 배열의 요소가 주어진 int 값과 같을..
2023.11.30 -
배열 nums1의 m번째 까지의 요소에 배열 nums2의 요소 n개를 넣은 뒤 정렬하라는 문제이다. 이 문제는 반복문 내의 nums1의 인덱스 설정을 m으로만 설정해주면 쉽게 풀 수 있는 문제이다. import java.util.Arrays; class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { for(int i = 0; i < (nums1.length - m); i++) { nums1[i + m] = nums2[i]; } Arrays.sort(nums1); } }
[리트코드] Inserting Items Into an Array - Merge Sorted Array배열 nums1의 m번째 까지의 요소에 배열 nums2의 요소 n개를 넣은 뒤 정렬하라는 문제이다. 이 문제는 반복문 내의 nums1의 인덱스 설정을 m으로만 설정해주면 쉽게 풀 수 있는 문제이다. import java.util.Arrays; class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { for(int i = 0; i < (nums1.length - m); i++) { nums1[i + m] = nums2[i]; } Arrays.sort(nums1); } }
2023.11.29 -
배열의 요소 중 0이 있으면 그 다음 인덱스에 해당하는 요소를 0으로 복제하고 인덱스 하나씩 뒤로 밀어줘야하는 문제 처음 문제를 본 후 든 생각은 '그냥 인덱스에 해당하는 요소가 0이면 한칸씩 미루고 0 하나 복제하면 되겠구나 ' 였다. 그래서 반복문을 사용해서 요소가 0일 때 하나씩 밀어주는 코드를 짰었는데 여기서 중요한 점은 뒤에서 부터 순차적으로 밀어야한다..(앞에서 부터 했다가 똑같은 숫자가 반복되는 경험을 함^^) 그것만 주의하면 어려운 건 없었다. class Solution { public void duplicateZeros(int[] arr) { for(int i = 0; i < arr.length; i++) { if(arr[i] == 0 && i + 1 < arr.length) { for(..
[리트코드] Inserting Items Into an Array - Duplicate Zeros배열의 요소 중 0이 있으면 그 다음 인덱스에 해당하는 요소를 0으로 복제하고 인덱스 하나씩 뒤로 밀어줘야하는 문제 처음 문제를 본 후 든 생각은 '그냥 인덱스에 해당하는 요소가 0이면 한칸씩 미루고 0 하나 복제하면 되겠구나 ' 였다. 그래서 반복문을 사용해서 요소가 0일 때 하나씩 밀어주는 코드를 짰었는데 여기서 중요한 점은 뒤에서 부터 순차적으로 밀어야한다..(앞에서 부터 했다가 똑같은 숫자가 반복되는 경험을 함^^) 그것만 주의하면 어려운 건 없었다. class Solution { public void duplicateZeros(int[] arr) { for(int i = 0; i < arr.length; i++) { if(arr[i] == 0 && i + 1 < arr.length) { for(..
2023.11.29 -
배열에 있는 수를 제곱을 한다음 나열을 하면 되는 문제이다. 기본적으로 반복문을 돌며 배열의 요소들을 제곱시킨 뒤 그 값들을 오름차순으로 배열을 해주면 된다. 배열을 오름차순으로 나열하는 것에는 여러가지 방법이 있겠지만 여기서는 java.util.Arrays 의 sort()라는 메소드를 사용했다. import java.util.Arrays; class Solution { public int[] sortedSquares(int[] nums) { for(int i = 0; i < nums.length; i++) { nums[i] = nums[i] * nums[i]; } Arrays.sort(nums); return nums; } } 매우 쉬운편
[리트코드] Introduction - Squares of a Sorted Array배열에 있는 수를 제곱을 한다음 나열을 하면 되는 문제이다. 기본적으로 반복문을 돌며 배열의 요소들을 제곱시킨 뒤 그 값들을 오름차순으로 배열을 해주면 된다. 배열을 오름차순으로 나열하는 것에는 여러가지 방법이 있겠지만 여기서는 java.util.Arrays 의 sort()라는 메소드를 사용했다. import java.util.Arrays; class Solution { public int[] sortedSquares(int[] nums) { for(int i = 0; i < nums.length; i++) { nums[i] = nums[i] * nums[i]; } Arrays.sort(nums); return nums; } } 매우 쉬운편
2023.11.29 -
주어진 숫자 배열에서 숫자의 자릿수가 짝수인 것의 개수를 세어야한다. String의 길이는 String.length() 를 사용하면 바로 알 수 있었다. 그래서 int도 length() 메소드를 사용할 수 있나 싶었는데 아니나 다를까 이렇게 쉬울 리가 없지..^^ int의 길이를 세는 방법을 서칭해봤다. Math.log10() 이라는 메소드가 있었다. log10이라니.. 있는지도 몰랐던 메소드였다.. log10(10) 이면 1을 반환하니 10은 두 자리 자연수이므로 숫자의 길이를 구하기 위해서는 log10(int) + 1을 해주면 된다. class Solution { public int findNumbers(int[] nums) { int count = 0; for(int i = 0; i < nums.l..
[리트코드] Introduction - Find Numbers with Even Number of Digits주어진 숫자 배열에서 숫자의 자릿수가 짝수인 것의 개수를 세어야한다. String의 길이는 String.length() 를 사용하면 바로 알 수 있었다. 그래서 int도 length() 메소드를 사용할 수 있나 싶었는데 아니나 다를까 이렇게 쉬울 리가 없지..^^ int의 길이를 세는 방법을 서칭해봤다. Math.log10() 이라는 메소드가 있었다. log10이라니.. 있는지도 몰랐던 메소드였다.. log10(10) 이면 1을 반환하니 10은 두 자리 자연수이므로 숫자의 길이를 구하기 위해서는 log10(int) + 1을 해주면 된다. class Solution { public int findNumbers(int[] nums) { int count = 0; for(int i = 0; i < nums.l..
2023.11.28