알고리즘 연습(음양더하기, 폰켓몬, 예산)
2021. 5. 5. 17:25ㆍJAVA
# NOTE
HashSet
- HashSet은 자바 Collection 중 Set의 대표적인 클래스입니다.
- HashSet은 기본적으로 집합으로 중복된 원소를 허용하지 않습니다.
- 순서 역시 고려가 되지 않습니다
int배열을 Integer 리스트로 형변환하는 방법
List<Integer> numList = (ArrayList<Integer>) Arrays.stream(nums).boxed().collect(Collectors.toList());
# 음양더하기
class Solution {
public String solution(int[] numbers) {
String answer = "";
Integer[] nums = Arrays.stream(numbers).boxed().toArray(Integer[]::new);
//1. 배열 값들을 오름차순으로 정렬
Arrays.sort(nums, Collections.reverseOrder());
for(int i = 0; i < nums.length; i++){
answer += Integer.toString(nums[i]);
}
//3. String으로 붙이기
return answer;
}
}
# 폰켓몬
class Solution {
public int solution(int[] nums) {
int answer = 0;
int count = nums.length/2;
HashSet<Integer> newNums = new HashSet<>();
//1.배열 내 중복 제거 후 HashSet으로 담기
for(int i = 0; i < nums.length; i++) {
newNums.add(nums[i]);
}
//2.1번 배열의 길이 = 종류 최댓값
//예외) 최대 선택 가능한 값을 초과할 순 없음
if(newNums.size() > count) {
answer = count;
}
else {
answer = newNums.size();
}
return answer;
}
}
© 2021 GitH
# 예산
class Solution {
public int solution(int[] d, int budget) {
int answer = 0;
//예산 내에서 최대 지원가능하게
//1. 가장 적은 요청순으로 배열을 정렬
Arrays.sort(d);
//2. 반복문을 돌리며 예산-요청 진행
for(int i = 0; i < d.length; i++) {
if(d[i] <= budget) {
budget = budget - d[i];
answer++;
}
else {
break;
}
}
return answer;
}
}
'JAVA' 카테고리의 다른 글
[JAVA] int배열을 List<Integer >로 형변환하는 방법 (0) | 2021.05.05 |
---|---|
[JAVA] HashSet (0) | 2021.05.05 |
[JAVA] 배열 정렬(오름차순, 내림차순)(feat. sort, Collections.reverseOrder()) (0) | 2021.05.04 |
[JAVA] int 배열을 Integer배열로 변환하는 방법 (0) | 2021.05.04 |
[JAVA] substring() (0) | 2021.05.04 |