#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 |
'Programmers > Level 2' 카테고리의 다른 글
[프로그래머스 2] 큰 수 만들기 (C/C++) (★★) (0) | 2019.10.22 |
---|---|
[프로그래머스 2] 프린터 (C/C++) (0) | 2019.10.22 |
[프로그래머스 2] 124 나라의 숫자 (C/C++) (★) (0) | 2019.10.21 |
[프로그래머스 2] 주식가격 (C/C++) (0) | 2019.10.20 |
[프로그래머스 2] 기능개발 (C/C++) (0) | 2019.10.20 |