문제
https://school.programmers.co.kr/learn/courses/30/lessons/42583#
접근방법
구현했는데, 정답률이 60퍼가 계속 나왔다.
결국 원인을 찾지 못해서, gemini의 도움을 받았다.
근데 gemini도 틀렸다.
gemini코드를 수정하니 정답률 100%가 나왔다.
뭐가 달랐을까..
gemini코드가 좀 더 문제에서 얘기하는 구현과 일치했다.
아마 정답률이 60%였던 이유는
몇몇 테스트케이스에서
트럭이 빠져나가는 타이밍과 들어오는 타이밍이 맞지 않아서였던 거 같다.
코드
#include <string>
#include <vector>
#include <deque>
#include <iostream>
using namespace std;
int solution(int bridge_length, int weight, vector<int> truck_weights) {
int answer = 0;
deque<int> q(bridge_length, 0);
int q_weight = 0;
int time_consuming = 0;
for (int t : truck_weights) {
while (true) {
q_weight -= q.front();
q.pop_front();
if (q_weight + t <= weight) {
q.push_back(t);
q_weight += t;
time_consuming++;
break; // Exit the inner loop
} else {
q.push_back(0);
time_consuming++;
}
}
}
// Account for the time for remaining trucks to cross
answer = time_consuming + bridge_length;
return answer;
}
개선할 점
더 노력하자..
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV2] - 더 맵게(minheap) c++ (0) | 2024.02.20 |
---|---|
[프로그래머스 LV2] - 주식가격 c++ (0) | 2024.02.17 |
[프로그래머스] - 프로세스(스택/큐) c++ (0) | 2024.02.15 |
[프로그래머스] - H-index(정렬) c++ (0) | 2024.02.15 |
[프로그래머스] - 가장 큰 수(정렬) c++ (0) | 2024.02.14 |