반응형
풀이 코드
using System;
using System.Collections.Generic;
public class Solution {
public int[] solution(int[] prices) {
List<int> list = new List<int>(prices.Length);
for(int i = 0; i < prices.Length; i++)
{
list.Add(GetSeconds(prices, i));
}
return list.ToArray();
}
private int GetSeconds(int[] prices, int startIndex)
{
int returnValue = 0;
for(int j = startIndex + 1; j < prices.Length; j++, returnValue++)
{
if(prices[startIndex] > prices[j])
{
returnValue++;
break;
}
}
return returnValue;
}
}
기타
- 이 문제가 왜 스택/큐와 관련이 있는지 잘 모르겠다. 스택을 사용한사람 풀이를 봐도 이걸 이렇게까지 해서 스택을 사용해야 싶기도 하고..
- 바로 직전에 푼 '다리를 지나는 트럭' 문제하고 난이도 차가 너무 나서 풀면서도 의심스러웠다.
- 결국 가독성 좋고, 간단하게 작성하는 법을 선택했는데, 스택/큐에 정신이 사로잡혀서 list를 사용하는 실수를 저질렀다.
- 그냥 배열로 사용해서 'if(prices[startIndex] > prices[j])' 조건문에서 배열 원소에 증가연산자 사용하면 결과 반환할 때, array 변환도 안해도 되고 가독성도 좀 더 올라갔을것 같다. (효율성 테스트에서도 list 사용 여부에 따라 1ms 차이가 났다.)
반응형
'Stack > Coding test' 카테고리의 다른 글
[C# / Lv2] 최댓값과 최솟값 (0) | 2022.10.07 |
---|---|
[C++ / Lv2] 더 맵게 (0) | 2022.03.03 |
[C++ / Lv 2] 다리를 지나는 트럭 (0) | 2022.02.26 |
[C++ / Lv2] 프린터 (0) | 2022.02.15 |
[C++ / Lv2] 기능개발 (0) | 2022.02.15 |