본문 바로가기
Java/Programmers

[Lv.1]푸드파이트 대회

by GLOWWW 2023. 1. 26.

처음 설계한 방법은 위와 같다. 설계대로 구현하며 잘못되거나, 더 쉬운 방법이 있어서 방법을 고쳐나아갔다.

특히 5번의 right배열에 sort reverse를 하지않고 left = right로 하였다.

6번의 while문도 할 필요가 없었고, left와 right의 반복문을 수행하여 해당 인덱스의 수만큼 repeat해주면서 숫자를 answer에 더해주면 되었다.

그런데... 다 풀고 다른분들이 한것을보니 엄청 쉽다.. 나만 어렵게 생각했네..

package Lv_1;

import java.util.Arrays;

public class 푸드파이트대회 {
    public static String solution(int[] food) {
        String answer = "";
        int[] left = new int[food.length - 1];
        int[] right;

        for (int i = 1; i < food.length; i++) {
            if (food[i] % 2 != 0) {
                food[i]--;
            }
        }
        for (int i = 1; i <= food.length - 1; i++) {
            left[i - 1] = food[i] / 2;
        }

        right = left;

        for (int i = 0; i < left.length; i++) {
            answer += Integer.toString(i + 1).repeat(left[i]);
        }

        answer += "0";

        for (int i = right.length; i > 0; i--) {
            answer += Integer.toString(i).repeat(right[i - 1]);
        }

        return answer;
    }

    public static void main(String[] args) {
        int[] food = new int[]{1, 3, 4, 6};
        String result = solution(food);
        System.out.println(result);
    }
}

'Java > Programmers' 카테고리의 다른 글

[Lv.1]가장 가까운 같은 글자  (0) 2023.01.27
[Lv.1]실패율  (0) 2023.01.27
[Lv.1]콜라 문제  (0) 2023.01.25
[Lv.1] K번째수  (0) 2023.01.24
[Lv.1]문자열 내 마음대로 정렬하기  (0) 2023.01.24

댓글