프로그래머스

99클럽 코테 스터디 15일차 TIL 뒤에 있는 큰 수 찾기

리콜 2024. 4. 12. 23:46

https://school.programmers.co.kr/learn/courses/30/lessons/154539

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

원래는 챌린저 문제인 

https://school.programmers.co.kr/learn/courses/30/lessons/87391

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

공 이동 시뮬레이션을 푸려 하였으나 

생각보다 어려웠다.

 

이동을 거꾸로 하고 범위를 찾는다는 것까지는 혼자 생각하였었는데

그 범위를 구하는 방법이 어려워 다른 사람들의 풀이를 보아도 어려웠다.

 

그래서 미들러 문제를 풀게 되었고 처음에는

완전탐색으로 코드를 적다가 백만개인것을 보고 

 

다른 방법을 생각 하게 되었는데

여러 자료구조를 생각하다가 스택을 생각하게 되었다.

 

import java.util.*;
class Solution {
    public int[] solution(int[] numbers) {
        Stack<Integer> stack = new Stack<>();
        int[] answer = new int[numbers.length];
        
        for(int i = numbers.length -1; i >= 0; i--){
            while(!stack.empty()){
                if(stack.peek() > numbers[i]){
                    answer[i] = stack.peek();
                    break;
                }
                else{
                    stack.pop();
                }
            }
            if(stack.empty()){
                answer[i] = -1;
            }
            stack.push(numbers[i]);
            
            
        }
        
        return answer;
    }
}

 

 

내일은 우테켐 코테를 치고 - 자신이 아직 없다...

다른 챌린지 문제를 풀어봐야겠다.

반응형