새소식

알고리즘 문제풀이/프로그래머스

[프로그래머스(Programmers)] level2 주식가격 스택/큐 문제 자바 풀이

  • -

프로그래머스 주식가격 문제는 문제만 잘 이해하면 간단하게 풀 수 있습니다

문제 설명이 너무 애매하게 되어있기도 하고 설명이 너무 대충나와 있어요

코드는 진짜 짧습니다

 

스택/큐 문제라고 나와있는데 스택을 이용해 풀 수도 있지만 굳이 이용하지 않아도 됩니다

자세한 문제 해석과 풀이 내용은 아래 깃허브(Github)에서 보실 수 있습니다

https://github.com/wlgh325/Programmers_algorithm/tree/master/Level2/%EC%A3%BC%EC%8B%9D%EA%B0%80%EA%B2%A9

 

wlgh325/Programmers_algorithm

프로그래머스 알고리즘 자바 풀이. Contribute to wlgh325/Programmers_algorithm development by creating an account on GitHub.

github.com

 

문제를 간단히 설명하면 크기가 작은 price가 나오기 전에는 주식 가격이 떨어지지 않는다는 겁니다.

예를들어 1,2,3,2,3 이 있으면 1초의 1은 그 뒤에 더 작은 price가 나오지 않으므로

끝까지 가격이 떨어지지 않아서 4초간 유지됩니다.

3초 시점의 3은 바로 뒤에 더 작은 가격이 나오므로 1초 동안 유지되는 것으로 봅니다.

 

프로그래머스 주식가격 자바 코드는 다음과 같습니다

class Solution{
    public int[] solution(int[] price) {
        int[] answer = new int[price.length];
        
        for (int i = 0; i < price.length; i++) {
            int count = 0;
            for (int j = i+1; j < price.length; j++) {
                if(price[i] <= price[j]){
                    count++;
                }
                else{
                    count++;
                    break;
                }
            }
            answer[i] = count;    
        }
        return answer;
    }
}

위 처럼 2중 for문을 통해 인덱스를 하나씩 비교해 나가면 됩니다

이때 효율성도 만족하기 위해서는 더 작은 수를 만나면 break 해줘서 바로 빠져나오면 됩니다!

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.