Skip to content

Latest commit

 

History

History

14627

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

문제풀이

최대한 많은 같은 양의 파를 쓰고 남은 파의 길이 구하기. 1개의 파닭에 1개이상의 파가 들어가면 안된다.

입력

  • s, c : 파의 갯수, 파닭의 수
  • s줄 파의 길이

로직

  1. 입력을 받는다.
  2. 파의 최소 길이와 최대 길이를 정의한다.
    1. 최대 길이는 가장 짧은 파의 길이면 안된다.
  3. 최대한 많은 같은 양의 파의 길이를 기록 할 변수를 선언한다.
  4. 이분탐색을 수행한다.
    1. 체크할 파의 길이 중심값을 구한다.
    2. 이 파의 길이로 파닭에 1개 이상의 파가 넘지 않도록 주문 수를 충족하면 변수에 기록하고 더 많은 양을 사용 할 수 있는지 체크하기 위해서 최소값을 갱신한다.
    3. 조건이 충족되지 않으면 더 작은 양으로 체크하기 위해서 최대값을 갱신한다.
  5. 전체 길이를 구하고 (3)에서 선언한 변수x파의 갯수를 뺀 길이를 반환한다.

맞왜틀

  • BigInt로 풀면 느리다.
  • 최대값(right)을 정의할 때 1개 이상의 파가 들어가면 안되니까 가장 짧은 파의 길이라고 생각했는데 틀렸다. 가장 긴 길이나 0번째 파의 길이로 하면 통과한다.
  • 이분탐색에서 체크하면서 sum 값을 같이 구하는게 더 느리다.

리팩토링