1181号:単語のソート[python]
これは白準アルゴリズムの1181題です.
先にやろう
データの入力、リストの生成
「ニンジン」という言葉が届いた場合は、「ニンジン」リストに追加します.ここで6はアルファベットの個数を表します.
このようにニンジン、リンゴ、ブルーベリーの順に入力し、[6、ニンジン]、[5、apple]、[9、ブルーベリー]に保存する.ただしここでトマトを入力する場合、トマトは6文字なのでニンジンのリストに追加する必要があります.したがって,[6,ニンジン,トマト],[5,apple],[9,blueberry],追加リストは文字数の有無によって2つのケースが見られる.
アルファベット順
上のリスト[6,ニンジン,トマト],[5,apple],[9,ブルーベリー]では,各リストの0番目のインデックスを比較ソートした.Pythonリストから.上記のリストをsort()関数でソートすると、[5,apple],[6,ニンジン,トマト],[9,ブルーベリー]となる.
アルファベット順に並べ替え、出力
複文で出力する場合は[6,ニンジン,トマト]から数字6を抜き,並べ替えた後,順次出力する.
num = int(input())
words = [[0]]
for i in range(num):
a = 2
tmpword = input()
for j in range(len(words)):
if tmpword in words[j]: # 중복 방지
a = 1
continue
if len(tmpword) == words[j][0]: # 기존의 리스트에 입력 받은 단어 길이에 해당하는 숫자가 존재하면
words[j].append(tmpword)
a = 0
if a == 1: # 중복 방지
continue
elif a == 2:
words.append([len(tmpword), tmpword])
words.sort()
for i in range(1, len(words)):
words[i].remove(words[i][0])
words[i].sort()
for j in range(len(words[i])):
print(words[i][j])
この問題は2回ソートする必要があります.1つ目はアルファベット数で並べ替え、2つ目は長さが同じ場合にアルファベット順で並べ替えます.データの入力、リストの生成
「ニンジン」という言葉が届いた場合は、「ニンジン」リストに追加します.ここで6はアルファベットの個数を表します.
このようにニンジン、リンゴ、ブルーベリーの順に入力し、[6、ニンジン]、[5、apple]、[9、ブルーベリー]に保存する.ただしここでトマトを入力する場合、トマトは6文字なのでニンジンのリストに追加する必要があります.したがって,[6,ニンジン,トマト],[5,apple],[9,blueberry],追加リストは文字数の有無によって2つのケースが見られる.
アルファベット順
上のリスト[6,ニンジン,トマト],[5,apple],[9,ブルーベリー]では,各リストの0番目のインデックスを比較ソートした.Pythonリストから.上記のリストをsort()関数でソートすると、[5,apple],[6,ニンジン,トマト],[9,ブルーベリー]となる.
アルファベット順に並べ替え、出力
複文で出力する場合は[6,ニンジン,トマト]から数字6を抜き,並べ替えた後,順次出力する.
Reference
この問題について(1181号:単語のソート[python]), 我々は、より多くの情報をここで見つけました https://velog.io/@dongkan9/1181번-단어-정렬-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol