方針
直接の友達の数+直接の友達でない人の中で友達に自分がいる人の数 を数えればOKというのに気付けませんでした。
友達の友達をすべて洗い出そうとしたのがよくなかったですね。それだと重複を除くのが大変です。
ソースコード
using System; using System.Collections.Generic; using System.Text; public class FriendScore { public int highestScore(String[] friends) { int n = friends.Length; int ans = 0; for (int i = 0; i < n; i++) { int cnt = 0; for (int j = 0; j < n; j++) if(i != j) if (friends[i][j].Equals('Y')) cnt++; else { for (int k = 0; k < n; k++) { if (friends[j][k].Equals('Y') && friends[k][i].Equals('Y')) { cnt++; break; } } } ans = Math.Max(ans, cnt); } return ans; } }