Algorithm/Codility (1) 썸네일형 리스트형 Codility MinMaxDivision 풀이 (Java) 최대값이 M인 배열 A가 인풋으로 들어온다. 우리는 K개의 배열 A를 K개의 그룹으로 나누고 각 그룹의 합의 최대값을 최소로하도록 만드는 문제이다. 카테고리가 Binary Search이기 때문에, 이분 탐색을 써서 풀 수 있는 문제라는 것을 알 수 있다. 각 그룹의 최대값을 이분탐색을 통해서 찾아주면 된다. l = 0, r = M * A.length 로 설정해준다. r을 M * A.length로 설정한 이유는 배열의 각 원소의 최대값이 M이기 때문이다. sum이라는 변수를 만들어 각 그룹의 합을 저장하고, sum이 mid값보다 커질 때는 새로운 그룹을 만드는 것으로 코드를 작성한다. mid값은 새로운 그룹을 만드는 구분자로 사용되며, 정답과는 다른 값이다. 그룹의 개수가 K보다 크게 된다면, mid값이 .. 이전 1 다음