⚡문제정보
오른쪽 값 중에 자기자신보다 큰 값이 있으면 그 값을 대입해주면 되는 문제였는데
거기에 추가로 오른쪽에 자기자신보다 큰 값이 없다면
왼쪽을 추가로 탐색해보는 조건이 생긴 문제입니다.
🔍접근방법
먼저 숫자의 오른쪽을 기준으로 탐색해본 뒤 오른쪽에 큰 값이 없다면
왼쪽을 순회하면서 큰값을 찾습니다.
만약 오른쪽 왼쪽 모두 기준값보다 큰 값이 없다면 -1을 push합니다.
🔍나의 풀이
var nextGreaterElements = function(nums) {
let answer = []
for(i=0 ; i<nums.length ; i++) {
for(j= i+1 ; j<nums.length ; j++) {
if(nums[j] > nums[i]) {
answer.push(nums[j])
break
}
}
if(answer.length != i +1) {
for(j = 0 ; j < i ; j++) {
if(nums[j] > nums[i]) {
answer.push(nums[j])
break
}
}
}
if(answer.length != i + 1) {
answer.push(-1)
}
}
return answer
};
코드가.. 안예쁘네요
로직은 간단합니다.
먼저 우측부터 탐색을 해보고 만약에 우측에서 답을 못찾아서 push를 못했다면
좌측을 탐색해보면서 답을 찾습니다.
좌측까지 탐색해봤음에도 답을 못찾았다면 -1을 push해주는 구조입니다.
반응형
'leetcode' 카테고리의 다른 글
139. Word Break 자바스크립트 DP (1) | 2023.01.08 |
---|---|
12. Integer to Roman 자바스크립트 (0) | 2023.01.08 |
20. Valid Parentheses 자바스크립트 스택 (0) | 2023.01.07 |
496. Next Greater Element I 자바스크립트 (0) | 2023.01.07 |
451. Sort Characters By Frequency 자바스크립트 (0) | 2023.01.07 |