プログラミングのお題スレ Part22 (854レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

797: デフォルトの名無しさん [] 2025/08/12(火) 21:05:08.06 ID:uRUBTkGF(1/2) AAS
>>771
771(22): デフォルトの名無しさん [sage] 2025/07/25(金) 12:30:11.02 ID:CjDQVF2B(1) AAS
【問題】
整数のリストが与えられたとき、そのリストを昇順に安定ソートした時の各要素のインデクス(0開始)を対応させたリストを作成せよ

【例】
入力: 1 100 10 10000 1000
出力: 0 2 1 4 3

入力: 3 1 4 1 5 9 2
出力: 3 0 4 1 5 6 2

入力: 0 1 0 1 0 1 0 1
出力: 0 4 1 5 2 6 3 7

実際に必要になって実装したけどスマートな方法があったら知りたい
PowerShell 6以降

function rank($a)
{
  $n = $a.length
  $r = [int[]]::new($n)
  if ($n) {0..($n - 1) | sort-object -stable {$a[$_]} |% {$i = 0} {$r[$_] = $i++}}
  $r
}

function PrintArray($a)
{
  if ($a.length -le 1) {return $a}
  "[$(($a |% {PrintArray $_}) -join ", ")]"
}

$q =
  (1, 100, 10, 10000, 1000),
  (3, 1, 4, 1, 5, 9, 2),
  (0, 1, 0, 1, 0, 1, 0, 1),
  @(),
  1,
  ((1, 1), (1, 1), (1, 0, 1), (1, 0))

$q |% {
  "入力: $(PrintArray $_)"
  "出力: $(PrintArray (rank $_))"
  ""
}
798: デフォルトの名無しさん [] 2025/08/12(火) 21:05:40.60 ID:uRUBTkGF(2/2) AAS
-- 実行結果 --
入力: [1, 100, 10, 10000, 1000]
出力: [0, 2, 1, 4, 3]

入力: [3, 1, 4, 1, 5, 9, 2]
出力: [3, 0, 4, 1, 5, 6, 2]

入力: [0, 1, 0, 1, 0, 1, 0, 1]
出力: [0, 4, 1, 5, 2, 6, 3, 7]

入力:
出力:

入力: 1
出力: 0

入力: [[1, 1], [1, 1], [1, 0, 1], [1, 0]]
出力: [2, 3, 1, 0]
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.290s*