반응형
문제 설명
길이가 n인 배열에 1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는지를 확인하려고 합니다.
1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는 경우 true를, 아닌 경우 false를 반환하도록 함수 solution을 완성해주세요.
제한사항
- 배열의 길이는 10만 이하입니다.
- 배열의 원소는 0 이상 10만 이하인 정수입니다.
입출력 예
arr | result |
[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를 반환하면 됩니다.
내가 사용한 코드
using System;
public class Solution {
public bool solution(int[] arr)
{
Array.Sort(arr); //오름차순으로 정렬
int n = arr.Length; //배열의 길이 구함
for (int i = 0; i < n; i++)
{
if (arr[i] != i + 1)
{
return false;
}
}
return true;
}
}
다른사람들의 풀이 방법을 보니 Linq도 사용했고, 더 복잡하게 풀이 한 사람도 있더라..
내가 짠 코드는 정확성 70.3에 효율성 29.7이 나왔다.
더 괜찮게 코드를 짜보고 싶은데 상상력의 한계거나 실력의 한계인거 같다.😂😂😂
더 효율이 높은 코드를 알고 계신분은 댓글로 알려주셨으면 좋겠습니다.
도움이 되셨다면 공감버튼을 눌러주세요.🥰
반응형
'개발일지 > 알고리즘' 카테고리의 다른 글
[BAEKJOON] 평범한 배낭(12865번 - C#) (0) | 2022.06.24 |
---|---|
[programmers] 가장 큰 정사각형 찾기(Java) (0) | 2022.06.23 |
[programmers] 나머지 한 점(C#) (0) | 2022.06.23 |
[programmers] 자릿수 더하기(C#) (0) | 2022.06.23 |
댓글