2회차(07.13) - 결과
결과:
<프로그래머스 문제 풀기>
* 탐욕법(Greedy) - 큰 수 만들기
pick은 자리 수를 나타내는데, 이 중에 몇 개를 고른다! 느낌으로 진행하였다. (pick인 이유 ,,)
앞에서 부터 최대값을 구하는데 이 때 고른 최대값 뒤에는 적어도 pick 개는 존재해야한다.
따라서, number.length()-pick 을 통해 최대 인덱스를 설정해주었다.
(사실 이 부분에서 제일 헤맸는데 지금 생각해보면 이건 진짜 수학문제가 아닐까? 잃어버린 내 수학적 머리 찾아요,,)
char 형 같은 경우 '0'을 빼주면 int 형 ,, , ,,,,
하지만 다른 사람들을 보니 굳이 저렇게 하지않고 char 형 그대로 max를 구하는 경우도 많던데,
미처 생각하지 못한 부분이었다.
고른 최대값을 stringBuilder에 append 해주면,, 된다,,
maxindex를 증가시켜주는 이유는 그 다음 인덱스부터 진행하기 위해서이다.
또한 시간 단축을 위해 StringBuilder를 사용하였다.
* 탐욕법(Greedy) - 구명보트
우선 Arrays.sort()를 통해 정렬을 진행한다.
따라서 처음 min은 첫번째값, max 값은 마지막 값이 된다.
min이 max보다 작아질 때 까지 다음은 반복되게 된다.
최소와 최대의 합이 limit보다 작거나 같은 경우에는 min값을 증가시킨다.
또한 반복문의 매 경우 answer는 증가시키고 max를 감소시킨다.
즉, 합이 limit보다 작거나 같은 경우에는 보트에 두명을 태우는 경우이고
그렇지 않은 경우에는 보트에 한명만 태우는 경우가 된다.(라고 이해하였다^^.)