美しいタスクの整理
急成長中のテクノロジー企業で新任のプロジェクトマネージャーとなったあなたは、複雑で多岐にわたるタスクリストの管理を任されました。しかし、このリストは単純なフラットなリストではなく、各タスクに複数のサブタスクが関連付けられた階層的なものです。タスクとサブタスクはネストされたリストで表されており、各アイテムは単一のタスク(文字列)か、サブタスクのリストです。
あなたの挑戦は、この階層構造をたどり、ネストされたリストに現れる順序で全てのタスクとサブタスクを出力する再帰的な関数を書くことです。読みやすく理解しやすいように、各サブタスクは親タスクよりタブ1つ分多くインデントしてください。
入力はn個のタスクとサブタスクからなるネストされたリストです。リスト内の各項目はタスク(文字列)か、サブタスクを表す別のリストです。
eval(input())
やjson.loads(...)
を使ってリストを読み込むことができます。プログラムはリストに現れる順序で、すべてのタスクとサブタスクを文字列として出力する必要があります。各サブタスクは親タスクよりタブ1つ分多くインデントしてください。
入力 | 出力 |
["Task 1", ["Subtask 1.1", "Subtask 1.2", ["Subtask 1.2.1", "Subtask 1.2.2"], "Subtask 1.3"], "Task 2", ["Subtask 2.1"]] | Task 1
Subtask 1.1
Subtask 1.2
Subtask 1.2.1
Subtask 1.2.2
Subtask 1.3
Task 2
Subtask 2.1 |
注意:出力では、各タブは
\t
文字で表されます。また、出力中のタスクとサブタスクの順序は、入力のネストされたリストの順序に従う必要があります。Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB