문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/42583
문제
풀이 및 코드
변명이라면 변명이지만 최근 자격증 공부와 기말고사 공부로 인해 이번 다리 건너기도 굉장히 뇌빼고 푼 경향이 없지 않아 있다고 생각합니다.
우선 저의 풀이는 이러합니다.
다리를 지나는 트럭
bridge_length대 올라갈 수 있으며 다리는 weight이하까지 무게를 견딤 (완전히 안오르면 무시)
1. 처음 지나갈때 계속 push_back을 해줌
2. 이제 길이가 다 찼으면 하나씩 vector에서 맨 앞을 erase하면서 원소를 추가시켜줌
1) 무게가 안된다? 0 push_back + answer++;
2) 무게가 된다? 트럭 무게 push_back + answer++;
3. 마지막 트럭이 오게되면 그것에 대해서 길이만큼 다리의 길이만큼 push_back을 하고 끝
결국 1초를 지났다는것을 반복문을 계속 돌리면서 answer++을 해주는 건데요.
결국 길이가 차기 전 초반에 대해서 일단 다 push_Back을 계속 해줍니다.
이제 길이가 다 찼다는 것은 이제 첫 차가 지나간 다음의 환경을 얘기하겠죠
그때는 차의 무게에 대해서 0혹은 존재하는 무게에 대해서 나오게 될겁니다.
그것에 대해서 이제 vector의 맨 앞단을 지워줍니다.
만약에 마지막 차가 이제 다리에 탔다는 것은 이제 지나가기만 하면 되는것이니 다리의 길이만큼 더해주고 바로 break를 해줍니다.
솔직히 이 문제는 제 풀이가 너무 마음에 들지 않는 급박하게 짰으므로 다른분 코드를 참조하시는 것을 추천드립니다.
다른 부느이 풀이 코드입니다.
'알고리즘 > c++ 프로그래머스' 카테고리의 다른 글
[프로그래머스 소수 찾기] c++ (풀이,코드) (0) | 2023.06.13 |
---|---|
[프로그래머스 가장 큰수] c++ (풀이,코드) (0) | 2023.06.10 |
[프로그래머스 롤케이크 자르기] c++ (풀이, 코드) (0) | 2023.06.07 |
[프로그래머스 숫자 변환하기] c++ (풀이,코드,bfs) (0) | 2023.06.06 |
[프로그래머스 2개 이하로 다른 비트] c++ (풀이,코드,비트연산자) (0) | 2023.06.05 |
댓글