読者です 読者をやめる 読者になる 読者になる

日々精進

新しく学んだことを書き留めていきます

SRM436 Div2 Easy

IT TopCoder

方針
直接の友達の数+直接の友達でない人の中で友達に自分がいる人の数 を数えれば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;
    }
}