AtCoder Beginner Contest 305 ABC C - Snuke the Cookie Picker の解説
・説明:与えられたマップに対して行ごとと列ごとに'#'の数を求める。'#'の数は必ずどこかの行、列で他の行、列より1小さい。よって行、列毎に'#'の最大値を取り、その数-1の値がある行と列を求めれば良い。
・実装例
h,w=map(int,input().split()) s=[input()for _ in range(h)] #print(s) #行に対して l=[0 for _ in range(h)] #行ごとの'#'の数のリスト。l[0]は0行目の'#'の数。 for i in range(h): cnt1=0 #各行の'#'の数。 for j in range(w): if s[i][j]=='#': cnt1+=1 l[i]=cnt1 cnt=max(l) #クッキーが食べられていない行におけるクッキーの数。 #print(cnt) #列に対して l2=[0 for _ in range(w)] #列ごとの'#'の数のリスト。 for j in range(w): cnt2=0 #各列の'#'の数。 for i in range(h): if s[i][j]=='#': cnt2+=1 l2[j]=cnt2 count=max(l2) #クッキーが食べられていない列におけるクッキーの数。 #print(count) #クッキーが食べられた行と列の確定。 for i in range(h): if l[i]==cnt-1: a=i+1 for j in range(w): if l2[j]==count-1: b=j+1 print(a,b)