카테고리 없음
알고리즘 문제
rxo2
2025. 5. 7. 21:06
public class Solution
{
public int[] solution(int[] prices)
{
int n = prices.Length; // 가격 배열의 길이 저장 (초의 개수)
int[] answer = new int[n]; // 결과를 저장할 배열 초기화
// i초 시점의 주식 가격에 대해 반복
for (int i = 0; i < n; i++)
{
int time = 0; // 가격이 떨어지지 않은 시간을 저장할 변수
// i초 이후의 가격들을 확인
for (int j = i + 1; j < n; j++)
{
time++; // 1초가 지남
// 가격이 떨어지면 반복 종료
if (prices[j] < prices[i]) break;
}
// 떨어지지 않은 시간을 결과 배열에 저장
answer[i] = time;
}
return answer; // 결과 반환
}
}
풀이
입력값: prices = [1, 2, 3, 2, 3]
- i = 0: 가격 1 → [2, 3, 2, 3] 전부 크거나 같음 → 4초 동안 유지
- i = 1: 가격 2 → [3, 2, 3] 전부 크거나 같음 → 3초 동안 유지
- i = 2: 가격 3 → 다음에 2로 떨어짐 → 1초 유지
- i = 3: 가격 2 → 다음에 3 → 안 떨어짐 → 1초 유지
- i = 4: 마지막 → 뒤에 없음 → 0초
최종 출력: [4, 3, 1, 1, 0]