LoginSignup
0
0

More than 3 years have passed since last update.

【Java】AtCoderのABC-189に参加しました。

Last updated at Posted at 2021-01-23

こんばんは。

2021/1/23に、AtCoderのABC-189に参加しました。
レートは以下の通りとなっています。

image.png

C問題は処理時間でエラーになり、良いロジックを思いつけず負けました・・。
まだまだですね。
ともあれレートを13→51に更新!
A問題は5分以内、B問題15分以内で安定して解けるようになってきました。
半年前に始めたときはA問題ですら会社の昼休み中(1時間-お弁当の時間)に解けなかった事を思うと、着実な進歩です。

A問題

入力した3文字が全部同じか、そうでないかチェックするというもの。
String型で入力した文字列を、char型にして同じかチェックしました。

import java.util.Scanner;
import java.util.HashSet;
import java.util.Set;

public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
  String c = sc.next();
  if((c.charAt(0)==c.charAt(1))&&(c.charAt(1)==c.charAt(2))){
System.out.println("Won");  
  }else{
System.out.println("Lost");  

  }
}
}

B問題

飲んだアルコール飲料の容量(v)と、アルコール度数(p)から、摂取したアルコール量(al)を求め、アルコール許容量(x)を超えて酔っぱらうかどうかを調べます。

整数型での答えを求められていましたが、int型は小数点以下を切り捨ててしまうので、思い切って数字を100倍して、アルコール度数10.5%→1050と算出させるようにしました。
もっとスマートなやり方があると思うんですけどね・・。

import java.util.Scanner;
import java.util.HashSet;
import java.util.Set;

public class Main{
public static void main(String args[]){
  Scanner sc = new Scanner(System.in);
  int n = sc.nextInt();
  int x = sc.nextInt();
  int v[] = new int[n];
  int p[] = new int[n];
  int al = 1;
  char flg = '0';
  for(int i=0;i<n;i++){
    v[i] = sc.nextInt();
    p[i] = sc.nextInt();
    if(i==0){
    al = v[i]*p[i]; 
    }
    else
    {
    al = al+(v[i]*p[i]); 
    }
    if(al>x*100){
      System.out.println(i+1);
      flg = '1';
      i=n;
    }
      //System.out.println("al/100 " + al/100);
  }

  if(flg=='0'){
      System.out.println(-1);
  }

}
}

C問題

*不正解のためソースは割愛します。
ロジック自体は正解に近づいていたようですが、処理時間がかかりTLEとなりました。
(21ケースAC、12ケースでTLE)。

やはり2重ループはだめでしたね。

感想

週末にちょっとした(失礼?)戦いがあるのは、いい刺激になります。
僕はこれでも高校時代は数学が好きで得意科目だったので、少し高校時代の数学の楽しさを思い出してきて楽しいです。これなら継続できそうな気がします。

これからもコツコツ取り組んで、茶色を目指したいと思います!
同じく灰色レベルで頑張っている方、お互い頑張りましょう!

0
0
2

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
0
0