Algorithm/Programmers
[Programmers] 주식가격
goakgoak
2020. 5. 29. 12:35
[Level 2] 주식가격
- 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
Solution
- cur은 현재 시점의 가격이고, 현재 시점을 기준으로 이전의 주식가격(prices[i])을 cur과 비교하면서 가격이 떨어지지 않은 기간을 증가하는 방식
- 정확성 테스트는 통과했지만 효율성 테스트는 통과하지 못했다.
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
class Solution {
static int[] answer;
static boolean[] flag;
public int[] solution(int[] prices) {
init(prices.length);
for(int p = 1, time = 1; p<prices.length;p++, time++){
int cur = prices[p];
for(int i = 0; i<time; i++){
if(flag[i]) continue;
answer[i]++;
if(prices[i] > cur){
flag[i] = true;
}
}
}
return answer;
}
public static void init(int len){
answer = new int[len];
flag = new boolean[len];
}
}
|
cs |
+) 효율성 테스트 통과한
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Solution {
public int[] solution(int[] prices) {
int[] answer = new int[prices.length];
for (int i = 0; i < answer.length; i++) {
for (int j = i+1; j < answer.length; j++) {
if (prices[i] > prices[j]) {
answer[i] = j-i;
break;
}
if (j==answer.length-1) answer[i] = j-i;
}
}
return answer;
}
}
|
cs |
자료출처