코딩테스트 풀이/JAVA
[LeetCode/Easy] 496. Next Greater Element I
무지맘
2023. 2. 26. 23:58
1. Input
1) int[] nums1
2) int[] nums2
2. Output
1) nums1[i]의 요소를 nums2에서 찾은 다음, 해당 요소의 오른쪽에 있는 nums2의 요소 중 nums1[i]보다 큰 첫 번째 요소를 차례대로 담은 int[]
- 만약 nums2에서 nums1[i]보다 큰 요소를 찾지 못했다면 -1을 저장한다.
3. Constraint
4. Example
Input: nums1 = [4,1,2], nums2 = [1,3,4,2] -> Output: [-1,3,-1]
설명:
- nums1[0]==4 -> nums2[2]==4 -> nums2에서 index>2 인 요소 중 4보다 큰 요소가 없으므로 -1을 저장
- nums1[1]==1 -> nums2[0]==1 -> nums2에서 index>0 인 요소 중 1보다 큰 첫 번째 요소는 3이므로 3을 저장
- nums1[2]==2 -> nums2[3]==2 -> nums2에서 index>3 인 요소는 없으므로 -1을 저장
5. Code
1) 첫 코드(2023/02/26)
int[] answer = new int[nums1.length];
for(int i=0 ; i<nums1.length ; i++){
for(int j=0 ; j<nums2.length ; j++){
if(nums2[j]==nums1[i]){
answer[i] = j; break;
}
}
boolean find = false;
for(int j=answer[i]+1 ; j<nums2.length ; j++){
if(nums2[j]>nums1[i]){
find = true; answer[i] = nums2[j]; break;
}
}
if(!find) answer[i] = -1;
}
return answer;
- 스택을 이용하는 방법은 잘 모르겠다.