質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Q&A

解決済

2回答

782閲覧

AtCoder Beginner Contest 243C 間違っている箇所を知りたい

den7

総合スコア28

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

0グッド

0クリップ

投稿2022/03/13 07:05

ABCの243のC問題(こちら)で19問中7問がWAとなってしまうのですが、修正するべき箇所がわかりません。
どなたかご教示いただけないでしょうか。
以下、コードです。

Java

1import java.util.*; 2 3public class Main { 4 public static void main(String[]args){ 5 Scanner sc=new Scanner(System.in); 6 int n=sc.nextInt(); 7 String ans="No"; 8 HashMap<Integer,List<Integer>> yy=new HashMap<Integer,List<Integer>>(); 9 for(int i=0;i<n;i++){ 10 int x=sc.nextInt(); 11 int y=sc.nextInt(); 12 if(yy.containsKey(y)==false){ 13 yy.put(y,new ArrayList<Integer>()); 14 } 15 yy.get(y).add(i); 16 } 17 ArrayList<Integer> list = new ArrayList<>(yy.keySet()); 18 String s=sc.next(); 19 String[] sa=s.split(""); 20 boolean flg=true; 21 while(flg){ 22 if(yy.size()==0){ 23 flg=false; 24 }else if(yy.get(list.get(0)).size()<2){ 25 yy.remove(list.get(0)); 26 list.remove(0);//or list.remove(Integer.valueOf(list.get(0))); 27 }else{ 28 int l=list.get(0); 29 for(int i=1;i<yy.get(l).size();i++){ 30 if(!(sa[yy.get(l).get(0)].equals(sa[yy.get(l).get(i)]))){ 31 ans="Yes"; 32 flg=false; 33 break; 34 } 35 } 36 yy.remove(l); 37 list.remove(0); 38 } 39 } 40 System.out.println(ans); 41 } 42}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

以下の入力で、正しい出力はNoですが、このコードだとYesが返ります。

text

12 20 0 31 0 4LR

つまり、「Y座標が同じで向きが異なる人がいる」という条件で判定してはいけないということです。

投稿2022/03/13 07:30

actorbug

総合スコア2224

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

den7

2022/03/13 07:45

ありがとうございます!大変勉強になりました。
guest

0

Java

1 for(int i=0;i<n;i++){ 2 int x=sc.nextInt(); // このxが使われずに捨てられているようだが、それでいいのかな? 3 int y=sc.nextInt(); 4 if(yy.containsKey(y)==false){ 5 yy.put(y,new ArrayList<Integer>()); 6 } 7 yy.get(y).add(i); 8 }

投稿2022/03/13 07:21

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

den7

2022/03/13 07:46

ありがとうございます!条件に気付いていませんでした、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問