Java 8로 제출하면 여유있는 것 같습니다.
Java 11의 Scanner가 생성하는 것이 느린가 봅니다.
2869번 - 달팽이는 올라가고 싶다
식을 도출해냈습니다.
v < ax- b(x-1) // b는 무조건 a가 올라간 날보다 하루 작습니다. +) 본 행동이 막대기의 길이보다 무조건 크거나 같아야 달팽이가 올라가는 최소한의 날을 구할 수 있게 되겠습니다.
v< ax- bx + 1
v< ax - bx + b
v-b < x(a-b)
(v-b) / (a-b) < x
이므로 x는 (v-b) / (a-b) +1 인 수라고 생각했습니다.
덧붙여 설명하자면 (v-b) / (a-b)는 int로 받아 항상 정수지만, (v-b) / (a-b)가 나머지가 있는 경우에는 그 수보다 크면서 정수인 가장 작은수로는 int( (v-b) / (a-b) +1 ) 이므로 (v-b) / (a-b) +1 이 되겠습니다.
여기서 예외로는 v-b와 a-b를 나눴을때 나머지가 없는 경우 이며 이 같은경우 나머지가 없이 바로 정수로 떨어지는 수이므로 -1을 해준 것 입니다.
댓글을 작성하려면 로그인해야 합니다.
namin2ya 2년 전 1
아래와 같은 소스로 문제를 풀게 되었습니다.
버퍼를 사용하는 방법이 있지만 버퍼는 아직 익숙하지 않고, 미숙한 점이 많아 조금 더 공부하고 사용하려고 합니다.
그래서 스캐너를 사용해서 문제를 푸는 방법에 대해서 알아보고자 반복문을 사용하지 않고 문제를 풀었는데,
다음과 같은 소스로 도출이 되었습니다. 정말 너무 궁금해서 다른 답안 소스코드를 확인해 보았는데, 제 소스코드와 별반 차이가 없어서 질문 드리게 되었습니다.