[伯俊1082]部屋番号

12363 ワード

PS_LINK

🌕を作成します。


今回VIP会長として新しく赴任したペク・ウンジン氏は、BIGBANGの偉大さを世界に知らせるために事務室を借りた.
BigBangは偉大なので、オフィスの番号もできるだけ大きくすべきだと思います.だから、今のお金で部屋番号を作りたいです.
1階の文房具屋で数字を売っています.数字ごとに価格が違うかもしれないので、今のお金で最大の数字を作りたいです.
例えば、文房具店で売っている数字が0、1、2で、数字ごとの価格が6、7、8で、白銀町が現在持っているお金が21であれば、白銀町でできる最大の数字は210(8+7+6=21)です.

📢Description


手元のお金からできるだけ多くの最小価格を支払うメールを買います.
そして、余剰金額で+前位数を購入した金額<=最大値を購入できる金額であれば、前位数を交換します.
次第に道を変える.
前の位置に0が含まれている場合、答えの前の位置は0を除外する必要があります.したがって、前の位置が0の場合、この区間を削除して出力する必要があるため、変数が作成されます.
前列が0の場合、0を買った数字を残額に転売します.
0の区間が最小のお金で買える値の長さに等しい場合は0を出力します.

💻Code

package AL_CS_STUDY.Weekly20;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class RoomNumber {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n=Integer.parseInt(br.readLine());
        int min=50;
        int idx=-1;
        int [] bookstore=new int[n];
        StringTokenizer st=new StringTokenizer(br.readLine());
        for (int i = 0; i < n; i++) {
            bookstore[i]=Integer.parseInt(st.nextToken());
            if(min>=bookstore[i])
            {
                min=bookstore[i];
                idx=i;
            }
        }

        int money=Integer.parseInt(br.readLine());
        char [] digits=new char[51];
        int cnt=0;
        while (money>=min)
        {
            digits[cnt++]=(char)(idx+'0');
            money-=min;
        }
        int s=0;
        for (int i = 0; i < cnt; i++) {
            for (int j =n-1; j >=0 ; j--) {
                if(bookstore[j]<=money+min)
                {
                    digits[i]=(char)(j+'0');
                    money+=min-bookstore[j];
                    break;
                }
            }
            if(digits[s]=='0')
            {
                s++;
                money+=min;
            }
        }
        if(s==cnt)
        {
            System.out.println(0);
            return;
        }
        String answer=""    ;
        for (int i = s; i <cnt ; i++) {
            answer+=digits[i];
        }
        System.out.println(answer);

    }
}