[Baekjoon]2841エイリアンギター演奏Python
🏷 質問する
💡 コード#コード#
from sys import stdin
N, P = map(int, stdin.readline().split())
melody = [list(map(int, stdin.readline().split())) for _ in range(N)]
# 기타의 1~6번줄 각각에 대한 리스트 생성
strings = [[] for _ in range(7)]
res = 0
# 입력받은 음계(줄, 프렛)
for l, f in melody:
# 해당 줄에 프렛이 하나도 없으면 새로 추가
if len(strings[l]) == 0:
strings[l].append(f)
res += 1
# 해당 줄에 프렛이 있는 경우
else:
# 연주하려는 프렛이 기존의 프렛보다 높은 음이라면, 새로 추가
if f > strings[l][-1]:
strings[l].append(f)
res += 1
print(strings[l])
# 연주하려는 프렛이 기존의 프렛과 같은 음이라면, 그냥 지나감
elif f == strings[l][-1]:
print(strings[l])
continue
# 연주하려는 프렛이 기존의 프렛보다 낮은 음이라면, 연주하려는 프렛보다 높은 음들을 모두 pop
else:
while strings[l] and f < strings[l][-1]:
strings[l].pop()
res += 1
if strings[l] and f == strings[l][-1]:
continue
# 그리고 나서 연주하려는 프렛 추가
strings[l].append(f)
res += 1
print(res)
🔑
勘定科目のメソッド
別の行数でリストを作成する
演奏するフィレットより高いすべてのトーンにpop()を追加し、新しいトーンを追加し、
💡 最後のケースの条件文では、
while strings[l]:
は考慮されていないため、インデックスエラーが発生しています.😂まずそのギターの弦にフレットがあるかどうか確認しなければなりませんが、無視しました.ははは、、、
Reference
この問題について([Baekjoon]2841エイリアンギター演奏Python), 我々は、より多くの情報をここで見つけました https://velog.io/@sorzzzzy/Baekjoon-2841-외계인의-기타-연주-pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol