https://programmers.co.kr/learn/courses/30/lessons/42588
스택/큐, LV2
기본적인 벡터 문제이다.
스택/큐를 활용하라고 하였는데 벡터로도 구현이 가능하여 다음과 같이 구현하였다.
가장 오른쪽 탑(i)에서부터 왼쪽 탑들(j) 중에서 높이가 높은 탑을 발견하면 그것을 기록하면 된다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> heights) {
vector<int> answer(heights.size(),0);
// 거꾸로 진행
for(int i=heights.size()-1 ; i>=0; i--){
int j = 0, found = 0;
// 왼쪽에서 큰 탑 발견하면
for(j=i; !found && j>=0; j--)
if(heights[i] < heights[j])
found=1;
// 발견시
// 마지막 for문에서 -- 하나, 인덱스 0~인것 고려
if(found==1)
answer[i]=j+2;
}
return answer;
}
'Archived(CSE Programming) > 알고리즘(C++)' 카테고리의 다른 글
프로그래머스_기능개발 (0) | 2019.11.23 |
---|---|
프로그래머스_다리를 지나는 트럭 (2) | 2019.11.20 |
프로그래머스_라면 공장 (0) | 2019.11.20 |
프로그래머스_H-Index (0) | 2019.11.19 |
프로그래머스_가장 큰 수 (0) | 2019.11.19 |