728x90
반응형
- 순열 검사
문제 설명
입출력 예arrresult
입출력 예 설명
길이가 n인 배열에 1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는지를 확인하려고 합니다.
1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는 경우 true를, 아닌 경우 false를 반환하도록 함수 solution을 완성해주세요.
- 배열의 길이는 10만 이하입니다.
- 배열의 원소는 0 이상 10만 이하인 정수입니다.
입출력 예arrresult
[4, 1, 3, 2] | true |
[4, 1, 3] | false |
입출력 예 #1
입력이 [4, 1, 3, 2]가 주어진 경우, 배열의 길이가 4이므로 배열에는 1부터 4까지 숫자가 모두 들어 있어야 합니다. [4, 1, 3, 2]에는 1부터 4까지의 숫자가 모두 들어 있으므로 true를 반환하면 됩니다.
입출력 예 #2
[4, 1, 3]이 주어진 경우, 배열의 길이가 3이므로 배열에는 1부터 3까지 숫자가 모두 들어 있어야 합니다. [4, 1, 3]에는 2가 없고 4가 있으므로 false를 반환하면 됩니다.
import java.util.*;
class Solution {
public boolean solution(int[] arr) {
boolean answer = false;
Arrays.sort(arr);
for(int i=0;i<arr.length;i++){
if(arr[i]!=i+1) {
return answer;
}
}
return answer=true;
}
}
+) 세련된 풀이
class Solution {
//O(nlogn)
public boolean solution(int[] arr) {
int[] answer = new int[arr.length];
for(int i=0;i<arr.length;i++) answer[i] = i+1; //O(n)
Arrays.sort(arr); //O(nlongn)
return Arrays.equals(answer,arr); //O(n)
}
}
728x90
반응형
'Java > Java 알고리즘 프로그래머스' 카테고리의 다른 글
[Stack / Queue] 01. 올바른 괄호 (0) | 2022.08.04 |
---|---|
[List] 03. 자연수 뒤집어 배열로 만들기 (0) | 2022.08.04 |
[List] 01. 최댓값 인덱스 구하기 (0) | 2022.08.04 |
[Set] 03. 같은 숫자는 싫어 (0) | 2022.08.04 |
[Set] 02. 끝말잇기 # (0) | 2022.08.04 |