paizaラーニングレベルアップ問題集の「配列の最大値/最小値」をやってみた。

paizaラーニングレベルアップ問題集の「配列の最大値/最小値」をやってみました。
- - -
##### 問題
###### 数列の最大値
https://paiza.jp/works/mondai/loop_problems/loop_problems__seq_max
###### 配列の最大値
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__max
###### 数列の最小値
https://paiza.jp/works/mondai/loop_problems/loop_problems__seq_min
###### 配列の最小値
https://paiza.jp/works/mondai/array_utilization_primer/array_utilization_primer__min
- - -
別に、半角空白区切り入力（ヨコ入力）を「数列」、改行区切り入力（タテ入力）を「配列」と言うわけではありません。ただ、「文字列配列」のことを誰も「数列」とは言わないですよね。
- - -
##### C
###### 数列/配列の最大値
```c
#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);
	int A[n];
	for (int i = 0; i < n; i++) scanf("%d", &A[i]);
	int max = A[0];
	for (int i = 1; i < n; i++) if (A[i] > max) max = A[i];
	printf("%d\n", max);
	return 0;
}
```
###### 数列/配列の最小値
```c
#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);
	int A[n];
	for (int i = 0; i < n; i++) scanf("%d", &A[i]);
	int min = A[0];
	for (int i = 1; i < n; i++) if (A[i] < min) min = A[i];
	printf("%d\n", min);
	return 0;
}
```
- - -
##### C++
###### 数列/配列の最大値
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector<int> A(n);
	for (int i = 0; i < n; i++) cin >> A[i];
	cout << *max_element(A.begin(), A.end()) << endl;
	return 0;
}
```
###### 数列/配列の最小値
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector<int> A(n);
	for (int i = 0; i < n; i++) cin >> A[i];
	cout << *min_element(A.begin(), A.end()) << endl;
	return 0;
}
```
- - -
##### C#
###### 数列の最大値
```cs
using System;
using System.Linq;

class Program
{
	public static void Main()
	{
		Console.ReadLine();
		Console.WriteLine(Console.ReadLine().Split().Select(_ => int.Parse(_)).Max());
	}
}
```
###### 配列の最大値
```cs
using System;
using System.Linq;

class Program
{
	public static void Main()
	{
		Console.WriteLine(Enumerable.Range(0, int.Parse(Console.ReadLine())).Select(_ => int.Parse(Console.ReadLine())).Max());
	}
}
```
###### 数列の最小値
```cs
using System;
using System.Linq;

class Program
{
	public static void Main()
	{
		Console.ReadLine();
		Console.WriteLine(Console.ReadLine().Split().Select(_ => int.Parse(_)).Min());
	}
}
```
###### 配列の最小値
```cs
using System;
using System.Linq;

class Program
{
	public static void Main()
	{
		Console.WriteLine(Enumerable.Range(0, int.Parse(Console.ReadLine())).Select(_ => int.Parse(Console.ReadLine())).Min());
	}
}
```
- - -
##### Go
###### 数列/配列の最大値
```go
package main
import "fmt"

func main() {
	var n int
	fmt.Scan(&n)
	A := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Scan(&A[i])
	}
	max := A[0]
	for i := 1; i < n; i++ {
		if A[i] > max {
			max = A[i]
		}
	}
	fmt.Println(max)
}
```
###### 数列/配列の最小値
```go
package main
import "fmt"

func main() {
	var n int
	fmt.Scan(&n)
	A := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Scan(&A[i])
	}
	min := A[0]
	for i := 1; i < n; i++ {
		if A[i] < min {
			min = A[i]
		}
	}
	fmt.Println(min)
}
```
- - -
##### Java
###### 数列の最大値
```java
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		sc.nextLine();
		System.out.println(Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).max().getAsInt());
		sc.close();
	}
}
```
###### 配列の最大値
```java
import java.util.*;
import java.util.stream.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println(IntStream.range(0, sc.nextInt()).map(i -> sc.nextInt()).max().getAsInt());
		sc.close();
	}
}
```
###### 数列の最小値
```java
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		sc.nextLine();
		System.out.println(Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).min().getAsInt());
		sc.close();
	}
}
```
###### 配列の最小値
```java
import java.util.*;
import java.util.stream.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println(IntStream.range(0, sc.nextInt()).map(i -> sc.nextInt()).min().getAsInt());
		sc.close();
	}
}
```
- - -
##### JavaScript
###### 数列の最大値
```js
const [n, A] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n').map((s, i) => i ? s.split(' ').map(Number) : Number(s));
console.log(Math.max(...A));
```
###### 配列の最大値
```js
const [n, ...A] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n').map(Number);
console.log(Math.max(...A));
```
###### 数列の最小値
```js
const [n, A] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n').map((s, i) => i ? s.split(' ').map(Number) : Number(s));
console.log(Math.min(...A));
```
###### 配列の最小値
```js
const [n, ...A] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n').map(Number);
console.log(Math.min(...A));
```
- - -
##### Kotlin
###### 数列の最大値
```kotlin
fun main() {
	readLine()
	println(readLine()!!.split(' ').map { it.toInt() }.max())
}
```
###### 配列の最大値
```kotlin
fun main() {
	println(Array(readLine()!!.toInt()) { readLine()!!.toInt() }.max())
}
```
###### 数列の最小値
```kotlin
fun main() {
	readLine()
	println(readLine()!!.split(' ').map { it.toInt() }.min())
}
```
###### 配列の最小値
```kotlin
fun main() {
	println(Array(readLine()!!.toInt()) { readLine()!!.toInt() }.min())
}
```
- - -
##### PHP
###### 数列の最大値
```php
<?php
	fgets(STDIN);
	echo max(array_map("intval", explode(' ', fgets(STDIN)))), PHP_EOL;
?>
```
###### 配列の最大値
```php
<?php
	$n = intval(fgets(STDIN));
	$A = [];
	for ($i = 0; $i < $n; $i++) $A[] = intval(fgets(STDIN));
	echo max($A), PHP_EOL;
?>
```
###### 数列の最小値
```php
<?php
	fgets(STDIN);
	echo min(array_map("intval", explode(' ', fgets(STDIN)))), PHP_EOL;
?>
```
###### 配列の最小値
```php
<?php
	$n = intval(fgets(STDIN));
	$A = [];
	for ($i = 0; $i < $n; $i++) $A[] = intval(fgets(STDIN));
	echo min($A), PHP_EOL;
?>
```
- - -
##### Perl
###### 数列の最大値
```pl
use List::Util qw(max);

my $n = int(<STDIN>);
my @A = map { int($_) } split ' ', <STDIN>;
print max(@A), $/;
```
###### 配列の最大値
```pl
use List::Util qw(max);

my $n = int(<STDIN>);
my @A;
for (my $i = 0; $i < $n; $i++) {
	push @A, int(<STDIN>);
}
print max(@A), $/;
```
###### 数列の最小値
```pl
use List::Util qw(min);

my $n = int(<STDIN>);
my @A = map { int($_) } split ' ', <STDIN>;
print min(@A), $/;
```
###### 配列の最小値
```pl
use List::Util qw(min);

my $n = int(<STDIN>);
my @A;
for (my $i = 0; $i < $n; $i++) {
	push @A, int(<STDIN>);
}
print min(@A), $/;
```
- - -
##### Python3
###### 数列の最大値
```py
input()
print(max(map(int, input().split())))
```
###### 配列の最大値
```py
print(max(int(input()) for _ in range(int(input()))))
```
###### 数列の最小値
```py
input()
print(min(map(int, input().split())))
```
###### 配列の最小値
```py
print(min(int(input()) for _ in range(int(input()))))
```
- - -
##### Ruby
###### 数列の最大値
```rb
gets
p gets.split.map(&:to_i).max
```
###### 配列の最大値
```rb
p gets.to_i.times.map { gets.to_i }.max
```
###### 数列の最小値
```rb
gets
p gets.split.map(&:to_i).min
```
###### 配列の最小値
```rb
p gets.to_i.times.map { gets.to_i }.min
```
- - -
##### Scala
###### 数列の最大値
```scala
import scala.io.StdIn._

object Main extends App{
	readInt()
	println(readLine().split(' ').map { _.toInt }.max)
}
```
###### 配列の最大値
```scala
import scala.io.StdIn._

object Main extends App{
	println((0 until readInt()).map { _ => readInt() }.max)
}
```
###### 数列の最小値
```scala
import scala.io.StdIn._

object Main extends App{
	readInt()
	println(readLine().split(' ').map { _.toInt }.min)
}
```
###### 配列の最小値
```scala
import scala.io.StdIn._

object Main extends App{
	println((0 until readInt()).map { _ => readInt() }.min)
}
```
- - -
##### Swift
###### 数列の最大値
```swift
let _ = readLine()
print(readLine()!.split(separator: " ").compactMap { Int($0) }.max()!)
```
###### 配列の最大値
```swift
var A: [Int] = []
for _ in 0..<Int(readLine()!)! {
	A.append(Int(readLine()!)!)
}
print(A.max()!)
```
###### 数列の最小値
```swift
let _ = readLine()
print(readLine()!.split(separator: " ").compactMap { Int($0) }.min()!)
```
###### 配列の最小値
```swift
var A: [Int] = []
for _ in 0..<Int(readLine()!)! {
	A.append(Int(readLine()!)!)
}
print(A.min()!)
```