- 정수 배열 A가 주어집니다 (길이 N, N ≥ 1).
- "순열(permutation)"이란 1부터 N까지의 모든 정수가 각각 한 번씩만 등장하는 수열을 의미합니다.
  예: [4,1,3,2] 는 길이가 4이면서 1,2,3,4가 모두 한 번씩만 있으므로 순열입니다.
  반면 [4,1,3] 은 길이가 3인데 2가 빠져 있으므로 순열이 아닙니다.

목표
- 배열 A가 순열인지 여부를 판정합니다.
- 순열이면 1을 반환하고, 순열이 아니면 0을 반환합니다.

함수 규격
class Solution {
    public int solution(int[] A);
}

예시
1) A = [4,1,3,2]
   → 순열이므로 1 반환

2) A = [4,1,3]
   → 2가 빠졌으므로 순열이 아님 → 0 반환

제약 조건
- N의 범위: [1..100,000]
- A의 각 원소는 [1..1,000,000,000] 범위의 정수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class PermCheck
{
    public int solution(int[] A)
    {
        int length = A.Length;
        bool[] appeared = new bool[length + 1];
 
        foreach (var num in A)
        {
            // 중복이면 순열아님
            if (num > length || appeared[num])
                return 0;
 
            appeared[num] = true;
        }
 
        return 1;
    }
}
cs

'코딜리티 > Lesson' 카테고리의 다른 글

PassingCars (누적합)  (0) 2025.09.17
MaxCounters (지연 갱신)  (0) 2025.09.15
FrogRiverOne  (0) 2025.09.15
TapeEquilibrium (누적합 + 이항)  (0) 2025.09.15
PermMissingElem (등차수열)  (0) 2025.09.14

+ Recent posts