반응형
SMALL
2단계가 맞나 싶을 정도로 저에겐 어려웠던 문제였습니다.
C++을 다루는데 익숙하지 않다보니 많은 변수를 다루게 되었고, 머리 속으로 문제 확립이 안되고 코드부터 짜다보니 놓쳤던 부분도 있었네요.
그래도 풀어보니 재밌는 문제였습니다.
#include <string>
#include <vector>
#include <deque>
using namespace std;
deque<int> br;
deque<int> br_time;
deque<int> trs;
int solution(int bridge_length, int weight, vector<int> truck_weights) {
int answer = 0;
int temp_trs_size = truck_weights.size();
int temp_value = 0;
int time = 0;
int w = 0;
int temp_w = 0;
for (int k = 0; k < temp_trs_size; k++) {
temp_value = truck_weights.back();
trs.push_front(temp_value);
truck_weights.pop_back();
}
while (br.size() != 0 || trs.size() != 0) {
answer += 1;
// out, +1
if (br.size() != 0) {
// +1
for (int k = 0; k < br_time.size(); k++) {
br_time[k] += 1;
}
// out
time = br_time.front();
if (time > bridge_length) {
temp_w = br.front();
br_time.pop_front();
br.pop_front();
w -= temp_w;
}
}
// in
if (trs.size() != 0) {
temp_w = trs.front();
if (br.size() + 1 <= bridge_length && w + temp_w <= weight) {
w += temp_w;
trs.pop_front();
br.push_back(temp_w);
br_time.push_back(1);
}
}
}
return answer;
}
반응형
LIST
'알고리즘 문제 풀이 > Programmers' 카테고리의 다른 글
2020 KAKAO BLIND RECRUITMENT - 기둥과 보 설치 (0) | 2020.08.11 |
---|---|
2020 KAKAO BLIND RECRUITMENT - 가사 검색 (0) | 2020.08.04 |
기능개발 - 2단계 (C++) (0) | 2019.06.27 |
탑 - 2단계 (C++) (0) | 2019.06.27 |
주식가격 - 2단계 (C++) (0) | 2019.06.27 |