강의로 돌아가기
PR***

스택말고 다이나믹방식도 가능합니다.

스택으로 많이 해결하시는 것 같아서 혹시 참고 하실 분 계시면 보시라고 올려봅니다.

  • 스택에 따로 동적으로 메모리를 할당하지 않아도 되고 속도도 훨씬 빠릅니다.

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> numbers) {
    vector<int> answer(numbers.size(), -1);   

    for(int i = numbers.size() - 2; i >= 0 ; i--)
    {
        for(int j = i + 1; j < numbers.size(); j++)
        {
            if(numbers[i] < numbers[j])
            {
                answer[i] = numbers[j]; 
                break;
            }
            else if(numbers[i] >= numbers[j])
            {
                if(answer[j] == -1)
                {
                    answer[i] = -1;
                    break;
                }     
                else if(numbers[i] < answer[j])
                {
                    answer[i] = answer[j];
                    break;
                }
            }
        }
    }  
    return answer;
}
  • 뿌***

    👍👍👍 감사합니다.

    뿌***―2023.04.06 15:24
  • my***

    좋네요. 👍👍👍👍

    my***―2023.11.18 22:58
  • ys***

    감사합니다! 🙇‍♂️

    ys***―2024.12.05 13:17
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다.