AtCoder230をやった。
※諸事情でリアルタイム参加できなかったから、、泣
##A
文字列を出力する問題
与えられた数字が
1~9だと、AGC00xと表示
10~41だと、AGC0xxと表示
42~54だと、基盤となる数字に1を足して、AGC0xxと表示
※ソースはクソです。多分もっといい書き方あります
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
Scanner scan = new Scanner(System.in);
ArrayList<String> list = new ArrayList<String>();
list.add(scan.nextLine());
if(Integer.parseInt(list.get(0)) < 10){
System.out.println("AGC00" + list.get(0));
} else {
if(Integer.parseInt(list.get(0)) >= 42){
System.out.println("AGC0" + Integer.toString(Integer.parseInt(list.get(0)) + 1));
} else {
System.out.println("AGC0" + list.get(0));
}
}
}
}
##B
文字列Tはoxxを10^5回連結させて組み合わせた連結文字と書いている。
しかし文字列S(入力によって与えられる文字列)は10以下であるから、
文字列Tのループを少なくするため、10^2でソースコードを記述している。
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
Scanner scan = new Scanner(System.in);
ArrayList<String> list = new ArrayList<String>();
list.add(scan.nextLine());
String str = "oxx";
for(int i = 1; i < 100; i++){
str += "oxx";
}
if(str.contains(list.get(0))){
System.out.println("Yes");
} else {
System.out.println("No");
}
}
}
いつかC問題もJavaで解きたいな(n回目)。
今回のC問題ちらっとみたけどいけそうな気がする。