코딩테스트
[프로그래머스] 푸드 파이트 대회 자바
mhui123
2025. 4. 1. 19:20
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/134240
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
칼로리가 낮은 순서대로 음식별 수 목록 food를 사용하여 음식배치 answer를 만들어 반환하라.
제한사항
1.food[0] 은 항상 물을 의미하는 '0' 의 갯수이며 1이다.
2.answer의 정중앙값은 항상 "0"이다.
3.answer의 양 끝~ 정중앙까지 칼로리가 낮은 음식 ~ 높은 음식 순서로 배치하되
두 사람이 사용해아 하므로 food[i] % 2 개는 버린다.
접근
정중앙을 기준으로 왼쪽의 음식배치를 만들고 그 후 "0"을 붙인 뒤 왼쪽배치를 거꾸로 오른쪽에 붙여 반환하도록 하였다.
public String solution(int[] food){
StringBuilder answer = new StringBuilder();
for(int i = 1; i < food.length; i++){
int cnt = food[i] / 2; // 배치 갯수
while(cnt > 0){
answer.append(i);
cnt --;
}
}
answer.append(0);
char[] chars = answer.toString().toCharArray();
for(int i = chars.length -2; i >= 0; i--){
answer.append(chars[i]);
}
return answer.toString();
}
반응형