- 정수 배열 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 |