문제 설명
1일부터 N일까지, 날짜별 주가가 순서대로 들어있는 배열이 있습니다. 이때, 주식을 구매한 후 차익을 얻기까지 날짜별로 최소 며칠씩 기다려야 하는지 알고 싶습니다.
예를 들어 N = 5일 때 1일부터 5일까지 각 날짜의 주가가 [4, 1, 4, 7, 6]인 경우,
1일에 주식을 4원에 산 후, 2일 혹은 3일에 주식을 판매하면 차익이 없으며, 4일에 주식을 판매하면 차익 3원을 얻습니다. 따라서 1일에 주식을 산 후, 차익을 얻기까지 최소 3일이 지나야 합니다.
마찬가지로 2일에 주식을 1원에 산 경우 하루가 지나면 차익을 얻으며, 3일에 주식을 4원에 산 경우에도 하루 뒤에 차익을 얻습니다. 그러나 4일, 5일에 각각 7원, 6원에 주식을 산 경우에는 차익을 얻을 수 있는 날이 없습니다.
1일부터 N일까지 날짜별로 주식의 가격이 순서대로 들어있는 배열 price가 매개변수로 주어질 때, 날짜별로 차익을 얻으려면 최소 며칠을 기다려야 하는지 알려주는 배열을 return 하도록 solution 함수를 완성해주세요.
function solution(price) {
var i = 0;
var k = 0;
var n = 0;
var answer = [];
for(i=0;i<price.length; i++){
for(k=i+1; k<=price.length; k++){
if(price[k] > price[i]){
n++;
answer[i] = n;
//console.log('i',i, 'n', n, 'price[i]', price[i], 'price[k]', price[k], 'answer[i]', answer[i]);
n=0;
break;
}else{
n++;
answer[i] = -1;
}
}
}
return answer;
}
'알고리즘 공부' 카테고리의 다른 글
23.06.12 Depth First Search (0) | 2023.06.12 |
---|---|
21.12.11 XOR 연산자 (0) | 2021.12.17 |
21.09.19 [프로그래머스] 출석 이벤트 (0) | 2021.09.20 |
21.06.11 A+B-5 (0) | 2021.06.13 |
21.06.10 A+B - 3 (0) | 2021.06.10 |