주식가격
문제: https://programmers.co.kr/learn/courses/30/lessons/42584
1. 문제 설명
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 유지된 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
prices의 길이는 2 이상 100,000 이하입니다.
2. 나의 코드
- 스택 문제라서 스택 쓰려다가 망한 케이스. 굳이 스택 안써도 되는 데 쓰려다가 개고생했다.
- ArrayList는 정답을 담는 ArrayList.
- init 를 초기화 시킨다음, 반복문으로 prices 배열을 탐색하면서 init 보다 크거나 같은 수가 나오면 second++한다.
- init 보다 작은 수가 나오면, second +=1 을 한후 break; => 작은 수가 나온 순간 까지 즉 1초 동안 가격을 유지한 것이므로...
- arr.add를 하고 위의 순서를 다시 반복한다.
- answer에 arr을 복사하고 answer를 return한다.
import java.util.*;
class Solution {
public int[] solution(int[] prices) {
int[] answer = new int[prices.length];
int init;
int second;
ArrayList <Integer> arr = new ArrayList<>();
for(int i=0;i< prices.length;i++){
init = prices[i];
second=0;
for(int j=i+1;j<prices.length;j++){
if(init <= prices[j]){
second++;
}
else{
second+=1;
break;
}
}
arr.add(second);
}
int count=0;
for(Integer n : arr){
answer[count++] = n.intValue();
}
return answer;
}
}
'Computer Science > 알고리즘 문제풀이' 카테고리의 다른 글
Programmers > 연습문제 > #45 정수 내림차순으로 배치하기 (0) | 2018.12.24 |
---|---|
Programmers > 연습문제 > #44 자릿수 더하기 (0) | 2018.12.24 |
Baek Joon _백준 2156> DP > #42 포도주 시식 (0) | 2018.12.12 |
Programmers > 스택/큐(Stack/Queue) > #41 쇠막대기 (0) | 2018.12.11 |
Programmers > 연습문제 > #40 올바른 괄호 (0) | 2018.12.11 |