paizaラーニングレベルアップ問題集の【N個の文字列の入力】をやってみた。

paizaラーニングレベルアップ問題集の【N個の文字列の入力】をやってみました。
- - -
##### 問題
###### 改行区切りでのN個の文字列の入力
https://paiza.jp/works/mondai/stdin_primer/stdin_primer__string_number_step1
###### 2行目で与えられるN個の文字列の入力
https://paiza.jp/works/mondai/stdin_primer/stdin_primer__string_number_step2
###### 1行目で与えられるN個の文字列の入力
https://paiza.jp/works/mondai/stdin_primer/stdin_primer__string_number_step3
###### 2行目で与えられるN個の文字列の入力 (large)
https://paiza.jp/works/mondai/stdin_primer/stdin_primer__string_number_step4
###### 1行目で与えられるN個の文字列の入力 (large)
https://paiza.jp/works/mondai/stdin_primer/stdin_primer__string_number_boss
- - -
- 「(large)」の有無（$N\le 100$か、$N\le 1000$か）は関係ありません
- 今回は、一部の言語において、受け取った文字列を配列に格納することは省略します
- - -
##### C
5問共通です。
```c
#include <stdio.h>

int main() {
	int N;
	scanf("%d", &N);
	for (int i = 0; i < N; i++) {
		char s[11];
		scanf("%s", s);
		puts(s);
	}
	return 0;
}
```
- - -
##### C++
5問共通です。
```cpp
#include <iostream>
using namespace std;

int main() {
	int N;
	cin >> N;
	for (int i = 0; i < N; i++) {
		string s;
		cin >> s;
		cout << s << endl;
	}
	return 0;
}
```
- - -
##### C#
###### 改行区切りでのN個の文字列の入力
```cs
using System;

class Program
{
	public static void Main()
	{
		int N = int.Parse(Console.ReadLine());
		for (int i = 0; i < N; i++) {
			string s = Console.ReadLine();
			Console.WriteLine(s);
		}
	}
}
```
###### 2行目で与えられるN個の文字列の入力
```cs
using System;

class Program
{
	public static void Main()
	{
		int N = int.Parse(Console.ReadLine());
		string[] S = Console.ReadLine().Split();
		for (int i = 0; i < N; i++)
			Console.WriteLine(S[i]);
	}
}
```
###### 1行目で与えられるN個の文字列の入力
```cs
using System;

class Program
{
	public static void Main()
	{
		string[] S = Console.ReadLine().Split();
		int N = int.Parse(S[0]);
		for (int i = 1; i <= N; i++)
			Console.WriteLine(S[i]);
	}
}
```
- - -
##### Go
5問共通です。
```go
package main
import "fmt"

func main() {
	var N int
	fmt.Scan(&N)
	for i := 0; i < N; i++ {
		var s string
		fmt.Scan(&s)
		fmt.Println(s)
	}
}
```
- - -
##### Java
###### 改行区切りでのN個の文字列の入力
5問共通です。
```java
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		for (int i = 0; i < N; i++) {
			System.out.println(sc.next());
		}
		sc.close();
	}
}
```
##### JavaScript
###### 改行区切りでのN個の文字列の入力
```js
const [N, ...S] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");
for (var i = 0; i < N; i++)
	console.log(S[i]);
```
###### 2行目で与えられるN個の文字列の入力
```js
let [N, S] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");
N = Number(N)
S = S.split(' ');
for (var i = 0; i < N; i++) console.log(S[i]);
```
###### 1行目で与えられるN個の文字列の入力
```js
const [N, ...S] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split(' ');
for (var i = 0; i < N; i++) console.log(S[i]);
```
- - -
##### Kotlin
```kotlin
import java.util.*

fun main() {
	val sc = Scanner(System.`in`)
	val N = sc.nextInt()
	for (i in 1..N)
		println(sc.next())
	sc.close()
}
```
###### 改行区切りでのN個の文字列の入力
```kotlin
fun main() {
	val N = readLine()!!.toInt()
	for (i in 1..N)
		println(readLine()!!)
}
```
###### 2行目で与えられるN個の文字列の入力
```kotlin
fun main() {
	val N = readLine()!!.toInt()
	val S = readLine()!!.split(" ")
	for (i in 0 until N)
		println(S[i])
}
```
###### 1行目で与えられるN個の文字列の入力
```kotlin
fun main() {
	val S = readLine()!!.split(" ")
	val N = S[0].toInt()
	for (i in 1..N)
		println(S[i])
}
```
- - -
##### PHP
###### 改行区切りでのN個の文字列の入力
```php
<?php
	$N = intval(fgets(STDIN));
	for ($i = 0; $i < $N; $i++)
		echo trim(fgets(STDIN)), PHP_EOL;
?>
```
###### 2行目で与えられるN個の文字列の入力
```php
<?php
	$N = intval(fgets(STDIN));
	$S = explode(' ',fgets(STDIN));
	for ($i = 0; $i < $N; $i++)
		echo $S[$i], PHP_EOL;
?>
```
###### 1行目で与えられるN個の文字列の入力
```php
<?php
	$S = explode(" ", fgets(STDIN));
	$N = $S[0];
	for ($i = 1; $i <= $N; $i++)
		echo $S[$i], PHP_EOL;
?>
```
- - -
##### Perl
###### 改行区切りでのN個の文字列の入力
```pl
my $N = int(<STDIN>);
for (my $i = 0; $i < $N; $i++) {
	chomp(my $s = <STDIN>);
	print "$s$/";
}
```
###### 2行目で与えられるN個の文字列の入力
```pl
my $N = int(<STDIN>);
my @S = split ' ', <STDIN>;
for (my $i = 0; $i < $N; $i++) {
	print $S[$i], $/;
}
```
###### 1行目で与えられるN個の文字列の入力
```pl
my ($N, @S) = split ' ', <STDIN>;
$N = int($N);
for (my $i = 0; $i < $N; $i++) {
	print $S[$i], $/;
}
```
- - -
##### Python3
###### 改行区切りでのN個の文字列の入力
```py
N = int(input())
for _ in range(N):
	print(input())
```
###### 2行目で与えられるN個の文字列の入力
```py
N = int(input())
A = input().split()
for i in range(N):
	print(A[i])
```
###### 1行目で与えられるN個の文字列の入力
```py
N, *A = input().split()
N = int(N)
for i in range(N):
	print(A[i])
```
- - -
##### Ruby
###### 改行区切りでのN個の文字列の入力
```rb
N = gets.to_i
N.times do
	puts gets
end
```
###### 2行目で与えられるN個の文字列の入力
```rb
N = gets.to_i
A = gets.split
N.times do |i|
	puts A[i]
end
```
###### 1行目で与えられるN個の文字列の入力
```rb
N, *A = gets.split
N.to_i.times do |i|
	puts A[i]
end
```
- - -
##### Scala
###### 改行区切りでのN個の文字列の入力
```scala
import scala.io.StdIn._

object Main extends App{
	val N = readInt()
	for (i <- 0 until N) {
		println(readLine())
	}
}
```
###### 2行目で与えられるN個の文字列の入力
```scala
import scala.io.StdIn._

object Main extends App{
	val N = readInt()
	val A = readLine().split(" ")
	for (i <- 0 until N) {
		println(A(i))
	}
}
```
###### 1行目で与えられるN個の文字列の入力
```scala
import scala.io.StdIn._

object Main extends App{
	val A = readLine().split(" ")
	val N = A(0).toInt
	for (i <- 1 to N) {
		println(A(i))
	}
}
```
- - -
##### Swift
###### 改行区切りでのN個の文字列の入力
```swift
let N = Int(readLine()!)!
for _ in 0..<N {
	print(readLine()!)
}
```
###### 2行目で与えられるN個の文字列の入力
```swift
let N = Int(readLine()!)!
let A = readLine()!.split(separator: " ")
for i in 0..<N {
	print(A[i])
}
```
###### 1行目で与えられるN個の文字列の入力
```swift
let A = readLine()!.split(separator: " ")
let N = Int(A[0])!
for i in 1...N {
	print(A[i])
}
```