【配列活用メニュー】> 【配列への副作用を伴う操作】STEP: 3 指定要素の入れ替え (paizaランク D 相当) [難易度: 1207 ±17]
※リンク先へ移動するためには[paiza]へのログインが必要です。
配列 A の要素数 N と配列 A の各要素 A_1, A_2, ..., A_N , 交換する A の要素番号 X, Y が与えられるので、A_X と A_Y を入れ替えた後の A を出力してください。
入力値(例)
2
1
10
1 2
出力値(例)
10
1
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php $n = trim(fgets(STDIN)); for($i = 0; $i < $n; $i++) { $array[] = trim(fgets(STDIN)); } list($x, $y) = explode(" ", trim(fgets(STDIN))); $a = ($x - 1); $b = ($y - 1); $answer = $array; $answer[$a] = $array[$b]; $answer[$b] = $array[$a]; //print_r($answer); foreach($answer as $value) { echo $value. "\n"; } ?> |
感想
指定されたx番目の値とy番目の値を入れ替える問題です。[$answer=$array;]というコードで配列を丸々コピーしています。そして、コピーした配列にオリジナルの配列のx番目の値($a)にy番目の値($b)を、y番目の値($b)にx番目の値($a)を入れています。
なにか配列を置換する関数とかありそうなのですが、うまく解けませんでした。(*'ω'*)