[python]バックアップアルゴリズム#11651


📝 質問する


2 D平面上のN個の点を与える.座標がy座標のインクリメンタルである場合、x座標のインクリメンタルでソートし、プログラム出力を記述します.

入力


第1行は、点の個数N(1≦N≦100000)を与える.2行目から、N行においてi番点の位置xiとyiが与えられる.(−1000≦xi,yi≦100000)座標は常に整数であり、2つの位置が同じ点はない.

🖨 しゅつりょく


最初の行からN行の位置合わせの結果を出力します.

入力#の例

5
0 4
1 2
1 -1
2 2
3 3

🖨 サンプル出力

1 -1
1 2
2 2
3 3
0 4

📚 私が提出したコード

import sys
input = sys.stdin.readline
n = int(input())
coorArr = []
for _ in range(n):
  x, y = map(int, input().split())
  coorArr.append((x, y))
coorArr.sort(key = lambda x : (x[1], x[0]))
for coor in coorArr:
  print(str(coor[0]) + " " + str(coor[1]))

▼▼私が提出したコードの説明

  • sys.stdin.readline:キーボード入力値を受信する関数(既存のinput()よりずっと速い).
  • range(a):0からa-1の整数を返す関数
  • map(a,b):関数
  • は、bの各要素をaに代入することを返します.
  • a.sort():aを昇順に並べ替えた関数で、値は返されません.
  • lambda:単純な関数を入力します.(主に1行の関数)
  • で、3行目:tupleの2番目の値を昇順に並べ替え、2番目の値が同じ場合、1番目の値を昇順に並べ替えます.
  • メモリ:50488 KB
  • 時間:392 ms
  • コード長:254 B
  • 👀 さらに理解する必要がある

  • sys.stdin.readlineの速度が速いのは
  • です