インデックスをいい感じにずらして考えられるかの問題
こういう問題を逆順列を求める問題というらしい
概要
- 出席番号
の人が来たときの自分を含めている人数
を与えられる。
- どういう順番で来たのかを出席番号で答えらえる?
解くときに考えた内容
- こういう問題は頭が混乱する。
- 例で考える
が2 3 1のとき
- 1つ目(出席番号1番)が出席順が2番目でした
- 2つ目(出席番号2番)が出席順が3番目でした
- 3つ目(出席番号3番)が出席順が1番目でした
出力は出席順なので、
の値が出力リストのindexである
(-1してあげないといけない)- 出力リストの該当indexには出席番号を入れる。
(実装上enumerateのindexなので+1してあげないといけない) - リストを改行なしで出すにはアンパック(*)してあげればいい。
以下の「リストの結果を1行に半角スペース開けて出力」に書いてある。 blacktanktop.hatenablog.com
コード
def main(): n = int(input()) A = [int(x) for x in input().split()] ans = [None] * n for idx, a in enumerate(A): ans[a-1] = idx+1 print(*ans) if __name__ == '__main__': main()