목차 💻
▸ 멀리 뛰기
▸ 귤 고르기
출처: 프로그래머스 코딩테스트 연습 > 연습 문제 > 멀리 뛰기
칸 수 | result |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 5 |
5 | 8 |
class Solution {
public long solution(int n) {
if(n == 1){
return 1;
}
if(n == 2){
return 2;
}
long[] arr = new long[n+1];
arr[0] = 0;
arr[1] = 1;
arr[2] = 2;
for(int i = 3; i <= n; i++){
arr[i] = (arr[i-1] + arr[i-2])%1234567;
}
return arr[n];
}
}
출처: 프로그래머스 코딩테스트 연습 > 연습 문제 > 귤 고르기
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public int solution(int k, int[] tangerine) {
Map<Integer, Integer> map = new HashMap<>();
//map에 저장
for(int t : tangerine){
map.put(t, map.getOrDefault(t, 0) + 1);
}
//리스트에 저장 및 정렬
List<Integer> values = new ArrayList<>(map.values());
Collections.sort(values, Collections.reverseOrder());
//귤 담기
int sum = 0; //귤의 수
int cnt = 0; //최솟값
for(int n : values){
if(sum + n >= k){
cnt++;
break;
} else{
sum += n;
cnt++;
}
}
return cnt;
}
}