알고리즘 문제/프로그래머스
[프로그래머스 - Java] 주식 가격
건복치
2021. 6. 10. 22:01
반응형
문제
https://programmers.co.kr/learn/courses/30/lessons/42584
설명
스택 / 큐로 분류된 문제라 이걸 활용해야 하나 싶었는데 그냥 이중 for문으로 풀었다.
정확성, 효율성 시간초과 안나더라!
아무튼 현재 주식가격을 기준으로 그 이후의 주식 가격들을 순회하면서 시간을 + 1 해 나간다.
그러다 현재보다 작은 주식 가격을 만난다면 순회를 멈추면 된다.
이를 이중 for문으로 모든 주식 가격에 적용하면 된다!
전체 코드
처음에는 아래와 같이 코드를 짰는데 굳이 cnt변수로 카운트할 필요가 없이 answer[i]++ 해주면 됨
for(int i = 0; i < prices.length; i++) {
int cnt = 0;
for(int j = i+1; j < prices.length; j++) {
if(prices[i] > prices[j]) {
cnt++;
break;
} else {
cnt++;
}
}
answer[i] = cnt;
}
import java.util.*;
class Solution {
public int[] solution(int[] prices) {
int[] answer = new int[prices.length];
for(int i = 0; i < prices.length; i++) {
for(int j = i+1; j < prices.length; j++) {
answer[i]++;
if(prices[i] > prices[j])
break;
}
}
return answer;
}
}
GITHUB
https://github.com/KwonMinha/Programmers/blob/master/Level2/src/StockPrice.java
반응형