/* 푸드 파이트 대회
* 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다
* 준비된 음식들을 일렬로 배치한 뒤,
* 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로,
* 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다.
* 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다.
* 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여
* 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다.
*
* 3가지의 음식이 준비되어 있으며,
* 칼로리가 적은 순서대로 1번 음식을 3개, 2번 음식을 4개, 3번 음식을 6개 준비했으며,
* 물을 편의상 0번 음식이라고 칭한다면,
* 두 선수는 1번 음식 1개, 2번 음식 2개, 3번 음식 3개씩을 먹게 되므로
* 음식의 배치는 "1223330333221"이 됩니다.
* 따라서 1번 음식 1개는 대회에 사용하지 못합니다.
*
* 수웅이가 준비한 음식의 양을 칼로리가 적은 순서대로 나타내는
* 정수 배열 food가 주어졌을 때,
* 대회를 위한 음식의 배치를 나타내는 문자열을 return 하는 solution 함수
*
* food result
* [1, 3, 4, 6] "1223330333221"
* [1, 7, 1, 2] "111303111"
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | public class programmer_1_3 { static int[] a1 = {1, 3, 4, 6}; static int[] a2 = {1, 7, 1, 2}; public String rv(String input){ String rst = ""; for(int i = input.length(); i > 0; i--){ rst += input.substring(i-1, i); } return rst; } public String solution(int[] food) { String answer = ""; int[] rv = {}; int calorie = 1; for(int i = 1; i < food.length; i++){ for(int k = 1; k <= food[i]/2; k++){ answer += Integer.toString(calorie); } calorie++; } answer += "0" + rv(answer); return answer; } public static void main(String args[]){ programmer_1_3 t = new programmer_1_3(); System.out.println("---------------------------------------"); System.out.println("result = " + t.solution(a1)); System.out.println("---------------------------------------"); // System.out.println("result2 = " + t.solution(a2)); // System.out.println("---------------------------------------"); } } | cs |