programmers_뒤에 있는 큰 수 찾기_java
2023. 4. 14. 11:02ㆍAlgorithm/Programmers
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/154539
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
int numbersLength = numbers.length;
int[] answer = new int[numbersLength];
Stack<Numbers> stack = new Stack<>();
for(int i = 0; i < numbersLength; i++){
if(stack.isEmpty()){ // 스택이 비어 있는 경우
stack.push(new Numbers(numbers[i], i));
}else{ // 스택에 값이 있는 경우
while(!stack.isEmpty() && stack.peek().num < numbers[i]){ // 스택의 최상위 값이 현재 수보다 작은 경우
Numbers n = stack.pop();
answer[n.idx] = numbers[i];
}
stack.push(new Numbers(numbers[i], i)); // 현재값 스택에 추가
}
}
while(!stack.isEmpty()){ // 남은것 처리
Numbers n = stack.pop();
answer[n.idx] = -1;
}
return answer;
}
public class Numbers{
int num;
int idx;
public Numbers(int num, int idx){
this.num = num;
this.idx = idx;
}
}
}
'Algorithm > Programmers' 카테고리의 다른 글
programmers_쿼드압축 후 개수 세기_java (0) | 2023.04.14 |
---|---|
programmers_숫자 변환하기_java (0) | 2023.04.14 |
programmers_2 x n 타일링_java (0) | 2023.04.13 |
programmers_2개 이하로 다른 비트_java (0) | 2023.04.13 |
programmers_[1차] 프렌즈4블록_java (0) | 2023.04.13 |