- 배열 / 정렬 문제
- 문제 분석
1. int[] nums 배열 중에 마이너스, 플러스가 두개다 존재하는 동일한 수 중 가장 큰 수를 찾아라.
- 문제 풀이
1. boolean[] 배열을 하나 선언한다.
2. nums 배열 마이너스 숫자가 있는 경우에 boolean [] 배열의 해당 i 번째를 true 로 선언한다.
3. nums 를 Arrays.sort() 함수로 정렬한다.
4. nums 를 가장 큰수부터 탐색하기 위해서 nums 배열을 뒤쪽 부터 확인하여 boolean[] 배열에 존재할 경우 해당 숫자를 반환한다.
class Solution {
public int findMaxK(int[] nums) {
Arrays.sort(nums);
boolean[] exist = new boolean[1001];
for(int i = 0; i < nums.length; i++) {
if (nums[i] > 0) {
break;
}
exist[Math.abs(nums[i])] = true;
}
for(int i = nums.length-1; i >= 0; i--) {
if (nums[i] >= 0 && exist[Math.abs(nums[i])]) {
return nums[i];
}
}
return -1;
}
}
'TIL' 카테고리의 다른 글
[코테연습] 1105. Filling Bookcase Shelves (0) | 2024.08.01 |
---|---|
[코테연습] 1653. Minimum Deletions to Make String Balanced (0) | 2024.07.30 |
[코테연습] 2000. Reverse Prefix of Word (0) | 2024.07.25 |
[코테연습] 2191. Sort the Jumbled Numbers (0) | 2024.07.24 |
[코테연습] 1636. Sort Array by Increasing Frequency (2) | 2024.07.23 |