3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

超初心者がAtCoderのコンテストに初参加した話(AtCoder Beginner Contest 140)

Last updated at Posted at 2019-09-08

練習と備忘録を兼ねてAtCoder参加した感触を記載します。

####環境
・Mac OS X 10.13.6
・Eclipse
・使用言語:Java8 (OpenJDK 1.8.0)

#きっかけ

職業訓練校でJavaを習い初めて1か月。
やっとfor文を使えるようになってきたレベルでAOJを勧められました。
1週間ほどAOJの問題をルンルンで楽しく解いていましたが昨日、、、朝からアクセスできない(泣)
でもせっかく休みだし何か問題解きたい!

そこで「コンテストってなんだか怖い」と敬遠していたAtCoderのページに行ってみる事にしました。

#AtCoder Beginner Contest 140
ちょうど今日(9/7)開催されるじゃないですかー!!参加ボタンを勢いで押しました。
参加したのは以下のコンテスト
AtCoder Beginner Contest 140

#結果
スクリーンショット 2019-09-08 9.56.32.png
スクリーンショット 2019-09-08 9.50.58.png
※ぜんぜん怖くなかった!むしろ終わった後の解説見たりとか楽しい!

#B問題でハマった

B問題、正解はしたものの終わった時点で70分、、、
C問題は見当がつけられませんでした。

####■B問題でハマった原因
・if文の中に二重括弧(())でコンパイルエラー(Eclipseではエラーが出ない)
・for文で回しながら要素を代入していったら配列の索字の数をオーバーする(ArrayIndexOutOfBoundsExceptionエラー)

####■B問題の問題と答え
#####問題  問題B : Buffet
#####正解した解答

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int[] A = new int[21];
		int[] B = new int[21];
		int[] C = new int[21];
		int i = 0;
		int cs = 0;
		int csSum = 0;

		for( i = 0; i < N ; i++) { //入力2行目の入力をA配列に格納
			A[i] = sc.nextInt();
		}

		for( i = 0; i < N; i++) { //入力3行目の入力をB配列に格納
			B[i] = sc.nextInt();
		}

		for( i = 0; i < N-1; i++) { //入力4行目の入力をC配列に格納
			C[i] = sc.nextInt();
		}
		
		for(i = 1; i <= N; i++) { //料理を食べた回数だけ繰り返す
			int j = A[i-1];  //索字の中に配列を入れたくなかったので苦肉の策で代入
			if(A[i] == j+1) {  //もし現在食べてる料理の前の料理がi+1番目なら
				cs = B[j-1] + C[j-1];  //Bの満足度+Cの満足度
			}else {  //もしi+1番目ではなかったら
				cs = B[j-1];
			}
			csSum += cs;  //得られた満足度の合計に加算していく
		}
		System.out.println(csSum);
		sc.close();
	}
}

#まとめ

  • すべての提出 を見て、解けた問題も他の方の解答方法を見て勉強します。
  • 今まで解いてきた問題数が少なかったと改めて実感、もっともっと練習問題やります。
  • そろそろアルゴリズムの勉強します。(バブルソートしか知らない)

#以下記事参考にさせていただきました!
AtCoder コンテストについての tips@drkenさん)
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~@drkenさん)
Qiita記事作成方法 初心者の備忘録@U-MAさん)

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?