문제
프로그래머스 코딩 테스트 난이도 1의 과일 장수, 푸드파이트 대회
코드
과일 장수
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int solution(int k, int m, int[] score) {
int answer = 0;
//score 배열을 리스트로 변환
List<Integer> list = Arrays.stream(score)
.boxed()
.collect(Collectors.toList());
//박스 내림차순 정렬
Collections.sort(list,Collections.reverseOrder());
//남는 사과 버리기
int rem = list.size()%m;
int size = list.size();
for(int i = size-1; i>= size-rem; i--){
list.remove(i);
}
//최대이익 구하기, m번째에 있는 점수만 계산해서 결과값에 넣음. 결국 그게 그 상자의 최솟값.
//내림차순으로 정렬해서 순서대로 넣으면 그 자체가 최대이익.
for(int i=m-1; i<=list.size()-1; i+=m){
answer += list.get(i).intValue() * m;
}
return answer;
}
}
푸드 파이트 대회
class Solution {
public String solution(int[] food) {
String answer = "";
//배열에 든 음식 절반 잘라서 다시 보관
for(int i=1;i<food.length; i++){
food[i] = (food[i]%2==0) ? food[i]/2 : (food[i]-1)/2;
}
//왼쪽 음식 추가
for(int i=1;i<food.length; i++){
answer += String.valueOf(i).repeat(food[i]);
}
//문자열 뒤집고 0 추가해서 물과 오른쪽 음식 추가
StringBuffer sb = new StringBuffer(answer);
answer += "0";
answer += sb.reverse().toString();
return answer;
}
}
'알고리즘 풀이' 카테고리의 다른 글
221121 알고리즘 풀이 6문제 (2) | 2022.11.21 |
---|---|
221119 알고리즘 풀이 8문제 (2) | 2022.11.19 |
221118 알고리즘 풀이 1 (0) | 2022.11.18 |
221114 알고리즘 풀이 (0) | 2022.11.15 |
221113 알고리즘 풀이 (0) | 2022.11.14 |