반응형
포인트
1. 이중 포문으로 오름차순을 찾을 수 있는가?
이 문제는 스택으로 풀 수 있다. -> 그 이유는 코드 중간에 저장을 하는 temp가 그런 역할을 하기 때문이다.
2. 자바 버전 추가하였습니다. (자바로 바꾼다고 알고리즘이 바뀌진 않는다. 몇몇 syntax 만 주의를 하면 됩니다.
🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다.
반복문
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> prices) {
vector<int> answer;
for(int i=0; i<prices.size(); i++){
int cnt=0;
int temp = prices[i];
for(int j=i+1; j<prices.size();j++){
cnt++;
int cmp = prices[j];
if(cmp < temp) break;
}
answer.push_back(cnt);
}
return answer;
}
스택 사용
#include <string>
#include <vector>
#include <stack>
using namespace std;
vector<int> solution (vector<int> prices) {
vector<int> answer;
stack<int> stack;
for (int i=0; i < prices.size (); i++) {
int cnt=0;
stack.push (prices[i]);
for (int j=i + 1; j < prices.size (); j++) {
cnt+=1;
if (prices[j] <stack.top()) break;
}
answer.push_back (cnt);
}
return answer;
}
JAVA
import java.util.Stack;
class Solution {
public int[] solution(int[] prices) {
int[] answer = new int[prices.length];
Stack <Integer> stack = new Stack<>();
for (int i = 0; i < prices.length; i++) {
int cnt = 0;
stack.push(prices[i]);
for (int j = i + 1; j < prices.length; j++) {
cnt += 1;
if(prices[j]<stack.peek()) break;
}
answer[i] = cnt;
}
return answer;
}
}
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 기능 개발 (0) | 2020.09.23 |
---|---|
[알고리즘] 프린터 (0) | 2020.09.23 |
[알고리즘] cpp 멀쩡한 사각형 (0) | 2020.09.23 |
[알고리즘] cpp 파이프 옮기기 (0) | 2020.09.20 |
[알고리즘] 아기상어 (0) | 2020.09.20 |
댓글