알고리즘 연습/프로그래머스
[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