[C#] 주식 가격

Connected Brain·2025년 7월 14일

코딩 테스트

목록 보기
34/67

주식 가격

문제 설명

초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때,
가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.

풀이

public class StockPriceAnalyzer
{
    public static int[] Solution(int[] prices)
    {
        int[] answer = new int[prices.Length];

        for (int i = 0; i < prices.Length; i++)
        {
            int price = prices[i];
            int count = 0;

            for (int j = i + 1; j < prices.Length; j++)
            {
                count++;

                if (prices[j] < price)
                    break;
            }

            answer[i] = count;
        }

        return answer;
    }
}
  • 입력된 배열에서 각각의 가격에 대해서 이후 표시된 가격과 비교해 값이 얼마 후에 떨어졌는지 여부를 확인하는 것이 필요하므로 이중 반복문을 사용
  • price 해당 시점에서 확인해야하는 가격과 그 이후 시간에서의 가격을 비교
count++;

if (prices[j] < price)
	break;
  • 확인하는 동안 무조건 1초가 지난 것이므로 매 확인마다 1초 동안은 가격이 유지된 것이므로 count에 1을 더함
  • 해당 시점에서의 가격이 기준이 되는 가격보다 낮아지면 반복문을 벗어남
  • 모든 가격에 대해서 해당 계산을 실시하고 얼마의 시간동안 가격이 떨어지지 않았는지를 answer에 저장해 반환

0개의 댓글