【精進記録】2020年7月01日(水)
ABC160 B - Golden Coins
かかった時間:23分くらい
提出コード:
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int X = sc.nextInt();
sc.close();
int ans = (int)(X/500)*1000;
ans += ((X%500)-(X%5));
System.out.println(ans);
}
}
一発ACならず。というか1回はWA、次の1回はREで三度目の正直でACをもぎ取れた。良かった。
数値処理の勉強不足が前面に出てしまった感がある。今回調べてみるまで、(Javaでは)intでキャストすると小数点以下切り捨て処理されると知らなかった。なんかいい感じにintにしてくれることは知っていたが、四捨五入か切り捨てか切り上げかよく分かってなかった。
1回目の提出コード:
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int X = sc.nextInt();
sc.close();
int x_5 = X%100;
int ans = (int)(x_5/5)*5;
ans += (int)X/500*1000;
System.out.println(ans);
}
}
2回目の提出コード:
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String X = sc.next();
sc.close();
int x_u = Integer.parseInt(X.substring(0,X.length() - 2))*100;
int x_l = Integer.parseInt(X.substring(X.length() - 2));
int ans = x_u*2;
x_l -= x_l%5;
ans += x_l;
System.out.println(ans);
}
}
最初は除算等を駆使して攻略するつもりだったが、1回目のコードでWAになったので方針転換。文字列として受け取ってあれこれ処理しようとした。が、入力が一桁の場合を考慮してなかったのでREを引き起こす。
結局算術的な処理で攻略することにして、最終的にああなった。
この記事が気に入ったらサポートをしてみませんか?