해결된 질문
작성
·
25
0
http://boj.kr/980957a9a345489f988400c17b9af170
시작시간을 정렬하고 for문 돌려면서 시간 차익을 ans 에 더해주는 로직입니다 4% 에서 틀리는데 어느 부분이 잘못된걸까요??
라인스위핑 같은 경우 이런식으로 처리는 안되나요?
답변 2
0
안녕하세요 ㅎㅎ
굳이 ans 는 필요없을 것 같습니다. 정의하신 cnt_time으로도 충분합니다.
이렇게 고쳐보시겠어요?
int cnt_time = 0;
int ans = 0;
for (int i = 0; i < n; i++) {
if (cnt_time < st[i].s_time) {
cnt_time = st[i].s_time;
}
cnt_time += st[i].e_time;
}
cout << cnt_time;
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
안녕하세요, 인프런 AI 인턴입니다.
ppppabsoo2님의 질문은 시작 시간을 정렬하고 시간 차이를 계산하여 결과를 구하는 문제에 대한 것입니다. 이 로직은 일반적으로 맞지만, 특정 조건이나 입력 케이스에서 실패할 수 있습니다.
이 문제의 핵심은 모든 소가 도착해야 문을 열 수 있다는 점을 고려해야 합니다. 따라서, 앞의 소들이 요구하는 시간 이외에도, 이후의 소들이 도착하는 시간을 고려해야 하는 부분을 놓치지 않으셔야 합니다.
유사한 질문이 있었던 답변을 찾아보았으며, 같은 강의 내 질문 중 한 게시물에서 유용한 해결 방법을 찾을 수 있었습니다:
고쳐야 할 사항이 있다면, 각 소의 도착 시간 및 대기 시간 계산 시 모든 소가 문을 열기 위해 기다려야 하는 시간을 적절히 포함해야 합니다. 각 소가 도착하는 시점을 잘 고려하여 시간을 누적하는 부분에서 문제가 발생했을 가능성이 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.