hyunjin

[level 2]탑 , 스택/큐 문제 본문

알고리즘 연습/프로그래머스

[level 2]탑 , 스택/큐 문제

_h.j 2020. 7. 7. 19:54
728x90

https://programmers.co.kr/learn/courses/30/lessons/42588

 

코딩테스트 연습 - 탑

수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다

programmers.co.kr

스택과 큐를 활용하여 푸는 문제다.

 

이중 for 문을 사용하여 풀었다. 스택/큐 문제인데 사용하지 않아서 음.... +2점을 얻었다.

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> heights) {
    vector<int> answer(heights.size());
    int index = 0;
    answer[0]=0;
    for(int i = heights.size()-1 ; i>0 ; i--){
        index = 0;
         for(int j= i-1 ; j >=0 ; j--){
             if( heights[i] < heights[j] ) {
                 index = j+1;
                 break;
             }
         }   
        answer[i] = index;
    }
    return answer;
}

여기서 조금 더 고친다면 애초에 answer의 사이즈 설정 동시에 0으로 초기화 해준다면 

answer[0] = 0; 부분이 필요없어진다.

 

 

문제의 의도에 맞게 스택과 큐를 활용한 방법은 아니지만

다른 사람의 풀이를 보니 스택이랑 큐를 사용하면 더 복잡해진다.

굳이 스택이나 큐를 사용해야 하는 건지 고민이다.

 

 

 

 

 

 

 

 

 

728x90