yukicoder No.239 にゃんぱすー
列ごとに"nyanpass"を数えていき、ちょうど n - 1個 だけ"nyanpass"が存在することがわかれば、その時の列番号を返せばいい。
ただし、2列以上にn - 1 だけ"nyanpass"以上にすると特定することはできないので、その時は -1 を返す。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String[][] a = new String[n][n]; for(int i = 0 ; i < n ; i++) { for(int j = 0 ; j < n ; j++) { a[i][j] = sc.next(); } } int ret = 0; int cnt1 = 0; for(int i = 0 ; i < n ; i++) { int cnt2 = 0; for(int j = 0 ; j < n ; j++) { if(a[j][i].equals("nyanpass")) { cnt2++; if(cnt2 == n - 1) { cnt1++; ret = i + 1; } } } } if(cnt1 == 1) { System.out.println(ret); } else { System.out.println(-1); } } }
分からなかったから他の人のコード見たけど、a[j][i] みたいに i と j を逆にすれば列ごとに見れることを学べた。
ただ星1にしては難しかった気がする。