[アルゴリズム]圧縮18870座標



投稿の作成を選択して問題を復習する基準は<解決済みです.ac天銀2(Silver 2)以上>.
※この写真と投稿内容の問題はすべて『Baekjoon OnlineJudge』から抜粋しています.

に質問


Baekjoonオンラインローエンド:18870座標圧縮

ほどく


My Code


メモリ:14808 KB
時間:2124ミリ秒
import sys
N = int(sys.stdin.readline())
ls = set()
num = list(map(int,sys.stdin.readline().rstrip().split()))
ls = sorted(list(set(num)))
d = {ls[i] : i for i in range(len(ls))}
for n in num :
    print(d[n], end=' ')
これはsetとdictionaryで簡単に解くことができる問題です.
N個の数字を1つの数字でしかインデックスできないからです.
まずsetを受け入れ、値を繰り返さないでください.
次にsetをlistに変換し、ソートします.
(setオブジェクトに位置合わせできません)
その後、
ゲートを通る
インデックス値をソート順に付与するdictオブジェクトを作成します.
この点を利用する.
最初に受信した数値配列要素
辞書クエリから出力されます.
解決方法が難しいというよりは,様々なオブジェクトタイプに対する基本的な知識が必要な問題である.