-
[프로그래머스] 주식가격(08.25)algorithm/프로그래머스 2020. 8. 25. 00:37
문제
https://programmers.co.kr/learn/courses/30/lessons/42584
접근법
이중 포문으로 간단하게 풀 수 있을 것으로 보았지만 은근히 까다로웠다.
문제를 이해하는게 우선이었다.
[1,2,3,2,3]
0번째 인덱스에 있는 1은 배열이 끝날 때까지 가격이 떨어지지 않는다. 따라서 [2,3,2,3] 4초동안 가격이 떨어지지 않는다.
1번째 인덱스 2는 배열이 끝날 때까지 가격이 떨어지지 않는다. [3,2,3] 3초동안 가격이 떨어지지 않는다.
2번째 인덱스 3은 1초만에 가격이 떨어진다. 가격을 1초동안 유지하였다.
3번째 인덱스의 2는 배열이 끝날 때까지 가격이 떨어지지 않는다. [3] 1초동안 가격이 떨어지지 않는다.
마지막 인덱스는 가격이 떨어질 일이 없다.
코드
class Solution { public int[] solution(int[] prices) { int[] answer = new int[prices.length]; for(int i=0;i< prices.length;i++){ //j는 가격이 떨어질 때까지 진행되는 인덱스 int j; for(j=i+1;j< prices.length;j++){ //가격이 떨어지면 그때의 인덱스에서 i를 빼준 값을 answer에 저장하고 포문 종료 if(prices[i] > prices[j]){ answer[i] = j-i; break; //가격이 유지가 되면 그때의 인덱스에서 i를 빼준 값을 answer에 저장 }else{ answer[i] = j-i; } } } return answer; } }
'algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 경주로 건설 (08.26) (0) 2020.08.26 [프로그래머스] 보행자 천국 (08.25) (0) 2020.08.25 [프로그래머스] 배달(08.23) (0) 2020.08.23 [프로그래머스] 보석 쇼핑(08.22) (0) 2020.08.22 [프로그래머스] N-Queen (08.21) (0) 2020.08.21