본문 바로가기

프로그래머스/lv1

푸드 파이트 대회

/* 푸드 파이트 대회
 * 선수들은 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 = {1346};
    static int[] a2 = {1712};
 
    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

'프로그래머스 > lv1' 카테고리의 다른 글

짝수와 홀수  (0) 2022.12.08
옹알이 (2)  (0) 2022.12.07
문자열 나누기  (0) 2022.12.07
과일 장수  (0) 2022.12.07
기사단원의 무기  (1) 2022.12.07