알고리즘/java

<java> 프로그래머스 주식가격

잼추 2024. 5. 23. 15:01

 

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

 

프로그래머스

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

programmers.co.kr

 

사실 레벨 2 정도는 쉽게 풀었으면 하는 스스로에게 기대가 있었는데

매일매일 새롭게 무너지는 중이라 마음이 아프다

 

항상 문제는 사소한 오타와
생각한 것을 침착하게 정리하지 않고
바로 코드 부터 타이핑 하고 보는 습관 때문인데
시간낭비가 따로 없다

 

내일은 좀 더 침착하게 할 수 있으면 좋겠다

 

문제 유형은 stack 이긴 하지만
그냥 list를 사용해도 될것 같다는 생각이 들었다.

해봐야 2중 for문 정도이니
사실 시간 단축을 위한 고민이 필요치 않다고 생각하고 그냥 문제를 풀기로 했다

 

풀이방식

 

하나(i)씩 꺼내서 다음 번호(j)의 숫자를 비교하여

i > j 이면 주식하락으로 보고 답을 저장한뒤
다음 번호(i)를 꺼내어 비교하는 방식이다.

 

정답

import java.util.*;

class Solution {
    public int[] solution(int[] prices) {
        int[] answer = new int[prices.length];

        
        for(int i = 0; i< prices.length-1; i++){
            for(int j = i ; j < prices.length; j++){
                if(prices[i] > prices[j]){
                    answer[i] = j-i;
                    break;
                }
                if(j == prices.length-1){
                    answer[i] = prices.length - i -1;
                }
            }
        }
        return answer;
    }
}