프로그래머스 주식가격 문제는 문제만 잘 이해하면 간단하게 풀 수 있습니다
문제 설명이 너무 애매하게 되어있기도 하고 설명이 너무 대충나와 있어요
코드는 진짜 짧습니다
스택/큐 문제라고 나와있는데 스택을 이용해 풀 수도 있지만 굳이 이용하지 않아도 됩니다
자세한 문제 해석과 풀이 내용은 아래 깃허브(Github)에서 보실 수 있습니다
https://github.com/wlgh325/Programmers_algorithm/tree/master/Level2/%EC%A3%BC%EC%8B%9D%EA%B0%80%EA%B2%A9
문제를 간단히 설명하면 크기가 작은 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 해줘서 바로 빠져나오면 됩니다!