아니... 문제 설명.. 불친절...
prices
1일 때, 2 3 2 3 으로 가격이 책정되어 있다. 따라서 처음 가격이 한 번도 떨어진 적 없으므로 4초간 떨어진 적이 없다.
2일 때, 3 2 3으로 마찬가지. 3초간 떨어진 적 없다.
3일 때, 2...로 가격이 떨어졌다. 1초 뒤에 떨어진 것이므로 1초간 떨어진 적 없다.
2일 때, 3으로 1초간 떨어진 적 없다.
그리고 마지막인 3일 때, 마지막 책정된 가격이므로 0초이다.
마지막 값은 default 0이라고 생각하고 풀면 편하다.
처음엔 위처럼 이해했다.
....그런데 테케는 맞고, 실제 채점은 다 틀렸다...
그래서 케이스를 생각해봤다.
만약 prices가 "3, 2, 1, 2"라면
prices
3일 때, 2 1으로 2초 뒤 가격이 떨어진다.
2일 때, 1으로 1초 뒤 가격이 떨어진다.
1일 때, 2로 1초간 가격이 떨어진 적 없다.
2일 때는 0이다.
2중 for문으로 풀면 될 것 같아서 stack/queue로 안 풀었다..ㅎ
더보기
처음 풀이
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> prices) {
vector<int> answer;
int check = prices.size() - 1;
for(int i = 0; i < prices.size(); i++){
if(i != prices.size() - 1){
if(prices[i] < prices[i + 1]) answer.push_back(check);
else answer.push_back(prices[i] - prices[i + 1]);
}else answer.push_back(0);
check--;
}
return answer;
}
🌱 정답코드
'OLD_알고리즘 > Programmers - 알고리즘' 카테고리의 다른 글
Programmers ] Level 2 - H-Index (0) | 2021.03.04 |
---|---|
Programmers ] Level 2 - 프린터 (0) | 2021.03.03 |
Programmers ] Level 2 - 삼각 달팽이 (0) | 2021.02.24 |
Programmers ] 🔁Level 2 - 기능개발 (0) | 2021.02.23 |
Programmers ] 🔁Level 2 - 124 나라의 숫자 (0) | 2021.02.12 |
댓글