paizaラーニングレベルアップ問題集の「重複の削除」をやってみた。

paizaラーニングレベルアップ問題集の[重複の削除](https://paiza.jp/works/mondai/array_primer/array_primer__deduplication)をやってみました。
- - -
###### 問題
https://paiza.jp/works/mondai/array_primer/array_primer__deduplication
- - -
###### 方針
問題文中にある通り、数列を配列に格納し、並び替える操作や重複を削除する操作を考えて解いてみましょう。
1. 数列$A$を、$A=\\{1,3,5,1,2,3,6,6,5,1,4\\}$とします
1. 数列$A$を昇順ソートします
1. $i=1,2,\dots,\\#(A)$について
	- $i=1$または$A_i\neq A_{i-1}$（昇順ソートしているので$A_i>A_{i-1}$）ならば
		- $A_i$を出力します
- - -
###### C
```c
#include <stdio.h>
#include <stdlib.h>

int cmp(const void *a, const void *b) {
	int x = *(int*) a;
	int y = *(int*) b;
	if (x < y) return -1;
	if (x > y) return 1;
	return 0;
}

int main() {
	int A[] = { 1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4 };
	int n = (int) (sizeof(A) / sizeof(A[0]));
	qsort(A, n, sizeof(A[0]), cmp);
	for (int i = 0; i < n; i++) {
		if (i > 0 && A[i] == A[i-1]) continue;
		printf("%d\n", A[i]);
	}
	return 0;
}
```
- - -
###### C++
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
	vector<int> A = { 1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4 };
	sort(A.begin(), A.end());
	for(int i = 0; i < (int) A.size(); i++) {
		if (i > 0 && A[i] == A[i-1]) continue;
		cout << A[i] << endl;
	}
	return 0;
}
```
- - -
###### C#
```cs
using System;

class Program
{
	public static void Main()
	{
		int[] A = { 1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4 };
		Array.Sort(A);
		for (int i = 0; i < A.Length; i++) {
			if (i > 0 && A[i] == A[i-1]) continue;
			Console.WriteLine(A[i]);
		}
	}
}
```
- - -
###### Go
```go
package main
import (
	"fmt"
	"sort"
)

func main() {
	A := []int{ 1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4 }
	sort.Ints(A)
	for i := 0; i < len(A); i++ {
		if i > 0 && A[i] == A[i-1] {
			continue
		}
		fmt.Println(A[i])
	}
}
```
- - -
###### Java
```java
import java.util.*;

public class Main {
	public static void main(String[] args) {
		int[] A = { 1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4 };
		Arrays.sort(A);
		for (int i = 0; i < A.length; i++) {
			if (i > 0 && A[i] == A[i-1]) continue;
			System.out.println(A[i]);
		}
	}
}
```
- - -
###### JavaScript
```js
const A = [ 1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4 ];
A.sort();
for (var i = 0; i < A.length; i++) {
	if (i > 0 && A[i] === A[i-1]) continue;
	console.log(A[i]);
}
```
- - -
###### Kotlin
```kotlin
fun main() {
	val A = arrayOf(1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4);
	A.sort()
	for (i in 0 until A.size) {
		if (i > 0 && A[i] == A[i-1]) continue
		println(A[i])	
	}
}
```
- - -
###### PHP
```php
<?php
	$A = [1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4];
	sort($A);
	for ($i = 0; $i < count($A); $i++) {
		if ($i > 0 && $A[$i] === $A[$i-1]) continue;
		echo $A[$i], PHP_EOL;
	}
?>
```
- - -
###### Perl
```pl
my @A = (1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4);
@A = sort(@A);
for (my $i = 0; $i < scalar(@A); $i++) {
	if ($i == 0 || $A[$i] != $A[$i-1]) {
		print "$A[$i]$/";
	}
}
```
- - -
###### Python3
```py
A = [1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4]
A.sort()
for i in range(len(A)):
	if i > 0 and A[i] == A[i-1]: continue
	print(A[i])
```
- - -
###### Ruby
```rb
A = [1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4]
A.sort!()
A.size.times do |i|
	if i > 0 && A[i] == A[i-1]
		next
	end
	p A[i]
end
```
- - -
###### Scala
```scala
object Main extends App{
	val A = Array(1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4)
	val B = A.sorted
	for (i <- 0 until B.size)
		if (i == 0 || B(i) != B(i-1))
			println(B(i))
}
```
- - -
###### Swift
```swift
var A = [1, 3, 5, 1, 2, 3, 6, 6, 5, 1, 4]
A.sort()
for i in 0..<A.count {
	if i > 0 && A[i] == A[i-1] {
		continue
	}
	print(A[i])
}
```