【AtCoder】ABC297解説(Python)

ABC297 B – chess960

問題

解法

それぞれの文字の位置をfor文で判定する。

解説

まず入力を文字列で受け取ります。

# 入力
S = input() 

2つのBの位置検索してi,jとして、i,jの偶奇が異なるかどうかを判定します。

#  2つのBの位置を検索してi,jとする
for i in range(8):
	if S[i]=='B':
		for j in range(i+1,8,1):
			if S[j]=='B':
				#  i,jの偶奇が同じであればNoを出力
				if (i+j)%2==0:
					print('No')
					exit()

R,K,Rの順番に並んでいるか判定します。

#  R,K,Rの順番に並んでいるか判定
for i in range(8):
	if S[i]=='R':
		for j in range(i+1,8,1):
			if S[j]=='K':
				for k in range(j+1,8,1):
					if S[k]=='R':
						print('Yes')
						exit()
            
print('No')

解答

# 入力
S = input() 

#  2つのBの位置を検索してi,jとする
for i in range(8):
	if S[i]=='B':
		for j in range(i+1,8,1):
			if S[j]=='B':
				#  i,jの偶奇が同じであればNoを出力
				if (i+j)%2==0:
					print('No')
					exit()

#  R,K,Rの順番に並んでいるか判定
for i in range(8):
	if S[i]=='R':
		for j in range(i+1,8,1):
			if S[j]=='K':
				for k in range(j+1,8,1):
					if S[k]=='R':
						print('Yes')
						exit()
            
print('No')
1 2
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!