본문 바로가기

컴퓨터/프로그래머스

프로그래머스 - 42584번: 주식가격 [Java]

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

 

프로그래머스

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

programmers.co.kr

1. 코드

import java.util.*;
class Solution {
    public List<Integer> solution(int[] prices) {
        List<Integer> answer = new ArrayList<>();
        for(int i = 0; i < prices.length - 1; i++) {
            int cnt = 0;
            for(int j = i + 1; j < prices.length; j++) {
                cnt++;
                if(prices[i] > prices[j])
                    break;
            }
            answer.add(cnt);
        }
        answer.add(0);
        return answer;
    }
}

2. 설명

반복문을 통해서 각 배열의 요소를 i라고 할 때 다음 요소인 j부터 끝까지 진행하여 가격이 떨어지는 순간 종료되는데 이때 반복문의 반복 횟수를 answer에 추가하며 배열의 마지막 요소는 검사할 것이 없기에 0을 추가해주며 answer를 반환하면 문제는 해결됩니다.

3. 정리

  • 정답률이 낮고 효용성 테스트가 있어 긴장했지만 생각보다 쉽게 해결되었다.
출처: 프로그래머스 코딩 테스트 연습, 
https://school.programmers.co.kr/learn/challenges