2836번 - 수상 택시
*제 논리가 설명되어있으니 혼자 풀고싶으시다면 뒤로가기 누르세요.
n개의 input을 a b 라고 표현하면
a <= b 인 경우는 무시해도 좋습니다. 0 에서 n으로 갈 테니 언젠간 목적지에 분명히 다다를 것이기 때문입니다.
그래서 a > b인 경우들만 벡터에 {b, a} pair로 저장하고
정렬한 다음에 sweeping으로 겹치는 부분을 제외한 총 길이를 구해서
그 값의 두배만큼 m에 더한 값을 출력하게끔 했습니다.
integer 범위를 넘을 수도 있어서 long long으로 바꿨지만 그래도 틀렸습니다.
무엇이 문제일까요?
if (a <= r) r = b;
r은 sweeping 시 커버하는 최대 좌표가 나와야되는데, 위에서는 단순 대입만 하고 있네요.
r = max(r, b);
를 의도하신 것 아닌가요?
아.. 맞습니다...
아까 전에 다른 스위핑 문제 풀 때도 같은 실수를 했었는데...
다음부턴 그걸 최우선으로 생각해봐야겠네요 ㅜㅜ
감사합니다.
댓글을 작성하려면 로그인해야 합니다.
playsworld16 3년 전
*제 논리가 설명되어있으니 혼자 풀고싶으시다면 뒤로가기 누르세요.
n개의 input을 a b 라고 표현하면
a <= b 인 경우는 무시해도 좋습니다. 0 에서 n으로 갈 테니 언젠간 목적지에 분명히 다다를 것이기 때문입니다.
그래서 a > b인 경우들만 벡터에 {b, a} pair로 저장하고
정렬한 다음에 sweeping으로 겹치는 부분을 제외한 총 길이를 구해서
그 값의 두배만큼 m에 더한 값을 출력하게끔 했습니다.
integer 범위를 넘을 수도 있어서 long long으로 바꿨지만 그래도 틀렸습니다.
무엇이 문제일까요?