-
프로그래머스 - Lv1. 예산PS 2022. 3. 1. 22:46
문제 : 예산
- 문제 내용은 여기.
- 쉽게 말해, 지원할 수 있는 부서의 최대 수를 구해서 돌려주면 된다.
풀이
import java.util.ArrayList; import java.util.List; class Solution { public int solution(int[] d, int budget) { List<Integer> dlist = new ArrayList<Integer>(); for (int item : d) dlist.add(item); dlist.sort(null); // 위의 세 줄은 다음과 같이 한 줄로 고칠 수 있다: // Arrays.sort(d); //다음 for문에서 dlist 대신 d 사용. int answer = 0; for (int ditem : dlist) { budget -= ditem; if (budget < 0) break; answer += 1; } return answer; } }
- 코드 길이가 짧고 주석을 잘 남겨놔서 설명은 생략.
후기
1 ) 어제 포스팅 한 코테 글에서 array는
sort()
도indexOf()
도 지원하지 않는다고 했었는데 반만 맞았다. 주석에 남겼다시피,Arrays
클래스를 통해서sort()
는 가능했다. 모르고Arraylist
에 담아 답을 제출한 후에 다른 사람들의 답안을 확인하고 나서 알았다.
2 ) 좀 딴 얘기지만Arrays.asList()
를 통해서 배열을List
로 만들려면 array의 타입이 reference Type이어야 한다. int와 같은 primitive type은 불가하다. 왜 불가한지는 아직 모르겠다. 또한List.sort()
의 인자는Comparator
를 구현하는Comparators
클래스의 enum 객체인데, 기본값(?)인null
을 넣으면Comparator.naturalOrder()
를 입력하는 것과 같다(Comparators.NaturalOrderComparator.INSTANCE
).
3 ) 문제는 쉬워도 배울게 있다는 점이 좀 쑥스러우면서도 좋다.'PS' 카테고리의 다른 글
프로그래머스 - Lv1. 다트 게임 (0) 2022.03.04 프로그래머스 - Lv1. 비밀지도 (0) 2022.03.04 프로그래머스 - Lv1. 2016년 (0) 2022.03.02 프로그래머스 - Lv1. 신고 결과 받기 (0) 2022.02.28 프로그래머스 - Lv1. 3진수 뒤집기 (0) 2022.02.27 프로그래머스 - Lv1. 약수의 개수와 덧셈 (0) 2022.02.26