프로그래머스 코딩 연습 - 귤 고르기 설명하자면 tangerine에서 값을 가져와서 map 형태로 구성해준다. 2.종류마다 개수가 몇개인지 확인한 후 이를 리스트로 변환하여 내림차순으로 정렬 해준다. 3.이후 리스트에서 큰 값부터 꺼내면서 k에서 값을 빼주는데 이 때
이진 변환을 위해 Integer.toBinaryString(n)을 이용하였다. 이후 charAt()를 통해 넘겨진 String의 단어 하나하나를 비교 하였다. while문의 조건값도 제대로 설정안해주었고 비교하는 것도 뭔가 더 간소화 할 수 있을 것 같다. 개선의
첫번째 시도 > 사실 phone_book이 1,000,000이하로 되어 있어 시간 초과가 당연한 결과였다.(정확성은 통과하지만 효율성에서 통과를 못한다) (보면 시간복잡도가 n2이다) > 결국 못 풀어서 다른 분들의 풀이를 참조하였다. 말 그대로 해시를 이용하여 푸
낮은 숫자로 n과 s를 낮게 설정해서 케이스들을 살펴보니 결국 s/n으로 나눈값과 가까울 때에 가장 큰 값을 보여준다. 이것을 이용하면 된다. > 배열에 중앙값(s/n)값을 나눠주는데 이때 s%n값들이 남는다. s%n값들을 1씩 뒤에서부터 더해준다. 이후 반환하면 끝