ABC230に参加しました。解答できた問題に関して投稿していきます。
使用言語はJavaです。
A問題
方針
- 入力される値(Nとする)によって処理を分岐させる。具体的には42 ≦ Nであれば、"AGC0" + (N + 1)と出力する。N < 10であれば、"AGC00" + Nと、それ以外の場合は"AGC0" + Nと出力する。
コード
標準入力と出力のコードは省略しています。(以下略)
Main.java
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Comparator;
import java.util.NoSuchElementException;
public class Main {
public static void main(String[] args) {
FastScanner fs = new FastScanner();
PrintWriter out = new PrintWriter(System.out);
int n = fs.nextInt();
if(n >= 42) {
out.println("AGC0" + (n + 1));
}else if(n < 10) {
out.println("AGC00" + n);
}
else {
out.println("AGC0" + n);
}
out.flush();
fs.close();
}
}
B問題
方針
- "oxx"を100回くらい繰り返した文字列を用意する。(Tとする。)
- 与えられる文字列(Sとする)として、Tに対してSが含まれているかcontainsメソッドを使って判定する。
containsメソッドに関してはこちらを参考までに
コード
Main.java
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Comparator;
import java.util.NoSuchElementException;
public class Main {
public static void main(String[] args) {
FastScanner fs = new FastScanner();
PrintWriter out = new PrintWriter(System.out);
String tString = "oxx";
for(int i = 0;i < 100;i++) {
tString = tString.concat("oxx");
}
String s = fs.next();
if(tString.contains(s)) {
out.println("Yes");
}else {
out.println("No");
}
out.flush();
fs.close();
}
}
C問題は解けなかったので、解説を参考にしながらコードを書いてみたいと思っています。
2完ですが、レーティングが上がってほっとしています。
ありがとうございました。