#include <string>
#include <vector>
using namespace std;
 
vector<int> solution(vector<int> heights) 
{
    vector<int> answer;
    vector<int> reverse_answer;
    
    // 거꾸로 대입(뒤 -> 앞)
    for(int i = heights.size()-1; i > 0; i--)
    {
        int flag = 0;
        for(int j = i-1; j >= 0; j--)
        {
            if(heights[i] < heights[j])
            {
                flag = 1;
                reverse_answer.push_back(j+1);
                break;
            }   
        }
        
        if(flag == 0)
        {
            reverse_answer.push_back(0);
        }
    }
    // 첫번째는 무조건 0 대입
    reverse_answer.push_back(0);
    
    // 거꾸로 대입했기 때문에 다시 reverse
    for(int i = reverse_answer.size()-1; i >= 0; i--)
    {
        answer.push_back(reverse_answer[i]);
    }
    
    return answer;
}
cs

+ Recent posts