S E P H ' S

[Java] 주식가격 본문

Algorithm/Programmers

[Java] 주식가격

yoseph0310 2023. 4. 25. 18:51
 

프로그래머스

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

programmers.co.kr

 

문제 풀이

정말 쉬운 문제지만 조건 확인에 덜렁이는 나같은 사람에게는 좋은 문제였다. prices의 모든 값을 큐에 넣은 후 큐의 값이 없을때까지 반복하면서 현재 값이 prices의 다음 값들과 비교해가면서 작아질때 까지 카운트를 1씩 늘려가면 되는 문제이다. 빼먹었던 조건은 현재 값보다 다음 값이 작아졌을 때 카운트를 1을 증가시키고 break를 해주어야 한다. 몇 초뒤에 가격이 떨어졌는지를 정답으로 요구하고 있기 때문에 작아진 다음에 1초를 더해야 했고 break를 하지 않으면 계속해서 다음 값을 비교하면서 카운트를 증가시킬 수 있기 때문이다.

 

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

    Queue<Integer> q = new LinkedList<>();

    for (int price : prices) {
        q.add(price);
    }

    int idx = 0;
    while(!q.isEmpty()) {
        int curPrice = q.poll();
        int num = 0;

        for (int j = idx + 1; j < prices.length; j++) {
            if (curPrice <= prices[j]) {
                num++;
            } else {
                num++;
                break;
            }
        }
        answer[idx] = num;
        idx++;
    }

    return answer;
}

'Algorithm > Programmers' 카테고리의 다른 글

[Java] 2개 이하로 다른 비트  (0) 2023.05.15
[Java] 조이스틱  (0) 2023.04.28
[Java] 단체사진 찍기  (0) 2023.04.14
[Java] 2 x n 타일링  (0) 2023.04.13
[Python] n^2 배열 자르기  (0) 2021.12.15