LoginSignup
1
0

More than 3 years have passed since last update.

【プログラミングコンテスト】JAVA

Posted at

AtCoderに初参加してボロボロだったので次回に向けて必要そうな知識をまとめてみた
適宜追加していく

標準入力の取得

これがないと何も出来ない

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
    //標準出力の1行目取得
        String first_row = sc.next();
    //標準出力の2行目取得
        String second_row = sc.next();
    }
}

文字型=>数値型に変換

標準出力を数値として使用したい場合等に使用

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
    //標準出力の1行目取得
        String first_row = sc.next();
    //整数に変換
        Integer num = Integer.parseInt(first_row);
    }
}

文字のn番目の文字を取得

これについてはcharAtの方が良さそうだが、エラーが出て使えなかったのでsubstringで代用した。
(charAtの使い方教えて欲しい。。。)

String test = "ABCDEFGHIJKLMNOPQRST";
//substring(k,n)で文字のk+1からn+1番目までの文字を取得できる。
//substring(k-1,k)でk番目の文字を取得できる。
String val = test.substring(2,3);

反省点

プログラミングコンテスト初参加の結果は0点だった。。。
原因としては問題を見て解けそうだと感じた問題に挑戦していたが、作ったプログラムが実行時間超過となってしまい点数にならなかった。

反省点としては、
・参加前にトレーニング問題を解いとくべきだった。
・事前にエディター環境を用意しとくべきだった。

分かったこと

・ネストでfor文やWhileが2回以上入ると実行時間を超過する恐れがある
・複雑な問題でも最初は小さい数字から考えるのが良い
・簡単そうな問題でも実行時間超過にさせない為に規則性を見つけなければいけない場合がある

参考記事

[Java]n番目の文字を取得する
https://hacknote.jp/archives/17781/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0