0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

paizaラーニングレベルアップ問題集の【配列メニュー】をやってみた。(13)

Posted at

paizaラーニングレベルアップ問題集の【配列メニュー】をやってみました。


問題
配列末尾への追加

要素の削除

要素の挿入


「配列メニュー」と言いながら、今回実際に使用しているのは動的配列、可変長配列やリストです。


C
配列末尾への追加
#include <stdio.h>
#include <stdlib.h>

int main() {
	int n, m;
	scanf("%d %d", &n, &m);
	int *A = (int*) malloc(sizeof(int) * n);
	if (!A) abort();
	for (int i = 0; i < n; i++) scanf("%d", &A[i]);
	A = (int*) realloc(A, sizeof(int) * (n + 1));
	if (!A) abort();
	A[n] = m;
	for (int i = 0; i < n + 1; i++) printf("%d\n", A[i]);
	free(A);
	return 0;
}
要素の削除
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
	int n, m;
	scanf("%d %d", &n, &m);
	int *A = (int*) malloc(sizeof(int) * n);
	if (!A) abort();
	for (int i = 0; i < n; i++) scanf("%d", &A[i]);
	memmove(A + m - 1, A + m, sizeof(int) * (n - m));
	A = (int*) realloc(A, sizeof(int) * (n - 1));
	if (!A) abort();
	for (int i = 0; i < n - 1; i++) printf("%d\n", A[i]);
	free(A);
	return 0;
}
要素の挿入
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
	int n, m, k;
	scanf("%d %d %d", &n, &m, &k);
	m -= 1;
	int *A = (int*) malloc(sizeof(int) * n);
	if (!A) abort();
	for (int i = 0; i < n; i++) scanf("%d", &A[i]);
	A = (int*) realloc(A, sizeof(int) * (n + 1));
	if (!A) abort();
	memmove(A + m + 1, A + m, sizeof(int) * (n - m));
	A[m] = k;
	for (int i = 0; i < n + 1; i++) printf("%d\n", A[i]);
	free(A);
	return 0;
}

C++
配列末尾への追加
#include <iostream>
#include <vector>
using namespace std;

int main() {
	int n, m;
	cin >> n >> m;
	vector<int> A(n);
	for (int i = 0; i < n; i++) cin >> A[i];
	A.push_back(m);
	for (int a : A) cout << a << endl;
	return 0;
}
要素の削除
#include <iostream>
#include <vector>
using namespace std;

int main() {
	int n, m;
	cin >> n >> m;
	m -= 1;
	vector<int> A(n);
	for (int i = 0; i < n; i++) cin >> A[i];
	A.erase(A.begin() + m);
	for (int a : A) cout << a << endl;
	return 0;
}
要素の挿入
#include <iostream>
#include <vector>
using namespace std;

int main() {
	int n, m, k;
	cin >> n >> m >> k;
	m -= 1;
	vector<int> A(n);
	for (int i = 0; i < n; i++) cin >> A[i];
	A.insert(A.begin() + m, k);
	for (int a : A) cout << a << endl;
	return 0;
}

C#
配列末尾への追加
using System;
using System.Collections.Generic;

class Program
{
	public static void Main()
	{
		int[] nm = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
		int m = nm[1];
		List<int> A = new List<int>(Array.ConvertAll(Console.ReadLine().Split(), int.Parse));
		A.Add(m);
		foreach (int a in A) Console.WriteLine(a);
	}
}
要素の削除
using System;
using System.Collections.Generic;

class Program
{
	public static void Main()
	{
		int[] nm = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
		int m = nm[1] - 1;
		List<int> A = new List<int>(Array.ConvertAll(Console.ReadLine().Split(), int.Parse));
		A.RemoveAt(m);
		foreach (int a in A) Console.WriteLine(a);
	}
}
要素の挿入
using System;
using System.Collections.Generic;

class Program
{
	public static void Main()
	{
		int[] nmk = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
		int m = nmk[1] - 1, k = nmk[2];
		List<int> A = new List<int>(Array.ConvertAll(Console.ReadLine().Split(), int.Parse));
		A.Insert(m, k);
		foreach (int a in A) Console.WriteLine(a);
	}
}

Go
配列末尾への追加
package main
import "fmt"

func main() {
	var n, m int
	fmt.Scan(&n, &m)
	A := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Scan(&A[i])
	}
	A = append(A, m)
	for _, a := range(A) {
		fmt.Println(a)
	}
}
要素の削除
package main
import "fmt"

func main() {
	var n, m int
	fmt.Scan(&n, &m)
	m -= 1 
	A := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Scan(&A[i])
	}
	A = append(A[:m], A[m+1:]...)
	for _, a := range(A) {
		fmt.Println(a)
	}
}
要素の挿入
package main
import "fmt"

func main() {
	var n, m, k int
	fmt.Scan(&n, &m, &k)
	m -= 1 
	A := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Scan(&A[i])
	}
	A = append(A[:m], append([]int{k}, A[m:]...)...)
	for _, a := range(A) {
		fmt.Println(a)
	}
}

Java
配列末尾への追加
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		sc.nextLine();
		List<Integer> A = new ArrayList<>(Arrays.stream(sc.nextLine().split(" ")).map(Integer::valueOf).toList());
		sc.close();
		A.add(m);
		for (int a : A) System.out.println(a);
	}
}
要素の削除
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt() - 1;
		sc.nextLine();
		List<Integer> A = new ArrayList<>(Arrays.stream(sc.nextLine().split(" ")).map(Integer::valueOf).toList());
		sc.close();
		A.remove(m);
		for (int a : A) System.out.println(a);
	}
}
要素の挿入
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt() - 1;
		int k = sc.nextInt();
		sc.nextLine();
		List<Integer> A = new ArrayList<>(Arrays.stream(sc.nextLine().split(" ")).map(Integer::valueOf).toList());
		sc.close();
		A.add(m, k);
		for (int a : A) System.out.println(a);
	}
}

JavaScript
配列末尾への追加
let [[n, m], A] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n').map(s => s.split(' ').map(Number));
A.push(m);
A.forEach(a => console.log(a));
要素の削除
let [[n, m], A] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n').map(s => s.split(' ').map(Number));
m -= 1;
A.splice(m, 1);
A.forEach(a => console.log(a));
要素の挿入
let [[n, m, k], A] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n').map(s => s.split(' ').map(Number));
m -= 1;
A.splice(m, 0, k);
A.forEach(a => console.log(a));

Kotlin
配列末尾への追加
fun main() {
	val (_, m) = readLine()!!.split(' ').map { it.toInt() }
	val A = readLine()!!.split(' ').map { it.toInt() }.toMutableList()
	A.add(m)
	for (a in A) println(a)
}
要素の削除
fun main() {
	var (_, m) = readLine()!!.split(' ').map { it.toInt() }
	m -= 1
	val A = readLine()!!.split(' ').map { it.toInt() }.toMutableList()
	A.removeAt(m)
	for (a in A) println(a)
}
要素の挿入
fun main() {
	var (_, m, k) = readLine()!!.split(' ').map { it.toInt() }
	m -= 1
	val A = readLine()!!.split(' ').map { it.toInt() }.toMutableList()
	A.add(m, k)
	for (a in A) println(a)
}

PHP
配列末尾への追加
<?php
	[$n, $m] = array_map("intval", explode(' ', fgets(STDIN)));
	$A = array_map("intval", explode(' ', fgets(STDIN)));
	$A[] = $m;
	foreach ($A as $a) echo $a, PHP_EOL;
?>
要素の削除
<?php
	[$n, $m] = array_map("intval", explode(' ', fgets(STDIN)));
	$m -= 1;
	$A = array_map("intval", explode(' ', fgets(STDIN)));
	array_splice($A, $m, 1);
	foreach ($A as $a) echo $a, PHP_EOL;
?>
要素の挿入
<?php
	[$n, $m, $k] = array_map("intval", explode(' ', fgets(STDIN)));
	$m -= 1;
	$A = array_map("intval", explode(' ', fgets(STDIN)));
	array_splice($A, $m, 0, $k);
	foreach ($A as $a) echo $a, PHP_EOL;
?>

Perl
配列末尾への追加
my ($n, $m) = map { int($_) } split ' ', <STDIN>;
my @A = map { int($_) } split ' ', <STDIN>;
push @A, $m;
foreach $a (@A) {
	print "$a$/";
}
要素の削除
my ($n, $m) = map { int($_) } split ' ', <STDIN>;
$m -= 1;
my @A = map { int($_) } split ' ', <STDIN>;
splice @A, $m, 1;
foreach $a (@A) {
	print "$a$/";
}
要素の挿入
my ($n, $m, $k) = map { int($_) } split ' ', <STDIN>;
$m -= 1;
my @A = map { int($_) } split ' ', <STDIN>;
splice @A, $m, 0, $k;
foreach $a (@A) {
	print "$a$/";
}

Python3
配列末尾への追加
n, m = map(int, input().split())
A = list(map(int, input().split()))
A.append(m)
for a in A:
	print(a)
要素の削除
n, m = map(int, input().split())
m -= 1 
A = list(map(int, input().split()))
del A[m]
for a in A:
	print(a)
要素の挿入
n, m, k = map(int, input().split())
m -= 1 
A = list(map(int, input().split()))
A.insert(m, k)
for a in A:
	print(a)

Ruby
配列末尾への追加
N, M = gets.split.map(&:to_i)
A = gets.split.map(&:to_i)
A << M
A.each do |a|
	p a
end
要素の削除
N, m = gets.split.map(&:to_i)
m -= 1
A = gets.split.map(&:to_i)
A.delete_at(m)
A.each do |a|
	p a
end
要素の挿入
N, m, K = gets.split.map(&:to_i)
m -= 1
A = gets.split.map(&:to_i)
A.insert(m, K)
A.each do |a|
	p a
end

Scala
配列末尾への追加
import scala.io.StdIn._

object Main extends App{
	val Array(_, m) = readLine().split(' ').map { _.toInt }
	var A = readLine().split(' ').map { _.toInt }
	A = A ++ Array(m)
	for (a <- A) println(a)
}
import scala.io.StdIn._
import scala.collection.mutable._

object Main extends App{
	val Array(_, m) = readLine().split(' ').map { _.toInt }
	val A = ArrayBuffer[Int]() ++ readLine().split(' ').map { _.toInt }
	A.append(m)
	for (a <- A) println(a)
}
要素の削除
import scala.io.StdIn._
import scala.collection.mutable._

object Main extends App{
	var Array(_, m) = readLine().split(' ').map { _.toInt }
	m -= 1
	val A = ArrayBuffer[Int]() ++ readLine().split(' ').map { _.toInt }
	A.remove(m)
	for (a <- A) println(a)
}
要素の挿入
import scala.io.StdIn._
import scala.collection.mutable._

object Main extends App{
	var Array(_, m, k) = readLine().split(' ').map { _.toInt }
	m -= 1
	val A = ArrayBuffer[Int]() ++ readLine().split(' ').map { _.toInt }
	A.insert(m, k)
	for (a <- A) println(a)
}

Swift
配列末尾への追加
let nm = readLine()!.split(separator: " ").compactMap { Int($0) }
let m = nm[1]
var A = readLine()!.split(separator: " ").compactMap { Int($0) }
A.append(m)
for a in A {
	print(a)
}
要素の削除
let nm = readLine()!.split(separator: " ").compactMap { Int($0) }
let m = nm[1] - 1
var A = readLine()!.split(separator: " ").compactMap { Int($0) }
A.remove(at: m)
for a in A {
	print(a)
}
要素の挿入
let nmk = readLine()!.split(separator: " ").compactMap { Int($0) }
let (m, k) = (nmk[1] - 1, nmk[2])
var A = readLine()!.split(separator: " ").compactMap { Int($0) }
A.insert(k, at: m)
for a in A {
	print(a)
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?