[伯俊1082]部屋番号
PS_LINK
今回VIP会長として新しく赴任したペク・ウンジン氏は、BIGBANGの偉大さを世界に知らせるために事務室を借りた.
BigBangは偉大なので、オフィスの番号もできるだけ大きくすべきだと思います.だから、今のお金で部屋番号を作りたいです.
1階の文房具屋で数字を売っています.数字ごとに価格が違うかもしれないので、今のお金で最大の数字を作りたいです.
例えば、文房具店で売っている数字が0、1、2で、数字ごとの価格が6、7、8で、白銀町が現在持っているお金が21であれば、白銀町でできる最大の数字は210(8+7+6=21)です.
手元のお金からできるだけ多くの最小価格を支払うメールを買います.
そして、余剰金額で+前位数を購入した金額<=最大値を購入できる金額であれば、前位数を交換します.
次第に道を変える.
前の位置に0が含まれている場合、答えの前の位置は0を除外する必要があります.したがって、前の位置が0の場合、この区間を削除して出力する必要があるため、変数が作成されます.
前列が0の場合、0を買った数字を残額に転売します.
0の区間が最小のお金で買える値の長さに等しい場合は0を出力します.
🌕を作成します。
今回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);
}
}
Reference
この問題について([伯俊1082]部屋番号), 我々は、より多くの情報をここで見つけました https://velog.io/@admin1194/백준1082-방-번호テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol