BOJ 2920音階
15477 ワード
BOJ问题补丁
テーマ対応
問題の難易度の下で
質問の種類:並べ替え、実装
回答時間:15分
しょかい
サイトで初めて質問に答えて入力すべきかどうか分かりませんが、以前Pythonコードにあったように(?)の草案を作る
音階を文字列に1、2、3、…、それを8に変換すべきだと思っていました.
arr = ['c', 'd', 'e', 'f', 'g', 'a', 'b', 'C']
arr2 = ['C', 'b', 'a', 'g', 'f', 'e', 'd', 'c']
arr3 = ['C', 'd', 'a', 'g', 'f', 'e', 'b', 'c']
def solution(arr):
result = list()
answer = ''
for i in range(len(arr)):
if(arr[i] == 'c'):
result.append(1)
elif(arr[i] == 'd'):
result.append(2)
elif(arr[i] == 'e'):
result.append(3)
elif(arr[i] == 'f'):
result.append(4)
elif(arr[i] == 'g'):
result.append(5)
elif(arr[i] == 'a'):
result.append(6)
elif(arr[i] == 'b'):
result.append(7)
elif(arr[i] == 'C'):
result.append(8)
else:
return None
if result == sorted(result):
answer = 'ascending'
elif result == sorted(result, reverse=True):
answer = 'descending'
else:
answer = 'mixed'
return answer
arr = ['c', 'd', 'e', 'f', 'g', 'a', 'b', 'C']
arr2 = ['C', 'b', 'a', 'g', 'f', 'e', 'd', 'c']
arr3 = ['C', 'd', 'a', 'g', 'f', 'e', 'b', 'c']
print(solution(arr))
print(solution(arr2))
print(solution(arr3))
結果
why?
Inputラベルをよく利用して、入出力の例を見て、コンピュータに自分で入力させます!
に答える
a[2] > a[1]
の場合、降順を昇順でfalseに変換する a[2] < a[1]
であれば降順で昇順をfalseに変換するa = list(map(int, input().split(' ')))
ascending = True
descending = True
for i in range(1, 8):
if a[i] > a[i-1]:
descending = False
elif a[i] < a[i-1]:
ascending = False
if ascending:
print('ascending')
elif descending:
print('descending')
else:
print('mixed')
# >>> 1 2 3 4 5 6 7 8 ascending
# >>> 8 7 6 5 4 3 2 1 descending
# >>> 1 3 4 5 6 7 8 2 mixed
Reference
この問題について(BOJ 2920音階), 我々は、より多くの情報をここで見つけました https://velog.io/@junh0328/BOJ-2920-음계テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol