AtCoder Beginner Contest 154 C - Distinct or Not
雪は降らないですが雨が多いですね、ねむーです。
今回はAtCoder(https://atcoder.jp/contests/abc154/tasks/abc154_c)にて開催されました、AtCoder Beginner Contest 154 C問題「C - Distinct or Not」の問題と僕との戦闘記です。
0.はじめに
1.問題文
整数列 A 1 , A 2 , . . . , A N が与えられます。 この整数列のどの 2 つの要素も互いに異なるならば YES を、そうでないなら NO を出力してください
2.制約
- 2 ≤ N ≤ 200000
- 1 ≤ A i ≤ 109
- 入力は全て整数
3.入出力例
- 入力
6 4 1 3 1 6 2
- 出力
NO
4.初見の感想
- 同じ数字が前に出ているかをfor文ループ処理すれば求められる
- この手法はTLE
5.学びポイント
- Sortして連続する2つの数を同じか判定
6.コードと簡単な解説
using System; using System.Collections.Generic; using System.Linq; class Program { public static void Main() { int N = int.Parse(Console.ReadLine()); string []input=Console.ReadLine().Split(); int []A = new int[N]; string flag = "YES"; for (int i = 0; i < N; i++) { A[i] = int.Parse(input[i]); } //ソート Array.Sort(A); for (int i = 1; i < N; i++) { //連続する2数が同じか判定 if (A[i] == A[i - 1]) { flag = "NO"; } } Console.WriteLine(flag); } }
7.最後に
制約条件見落としがちですね~