반응형
문제 설명
길이가 n인 배열에 1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는지를 확인하려고 합니다.
1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는 경우 true를, 아닌 경우 false를 반환하도록 함수 solution을 완성해주세요.
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를 반환하면 됩니다.
solution.js
function solution(arr) {
let answer = true;
console.log(arr.length);
let max = Math.max(arr);
answer = (max === arr.length) ? true : false;
return answer;
}
해설
이 코드에는 Max 함수를 사용해 코드를 좀더 간결하고 실행이 빠르도록 하였습니다.
Max는 입력받은 값중 가장 큰 수를 반환 합니다.
1. 입력받은 arr 의 길이를 알고 싶어 console.log 로 출력하도록 하였습니다.
2. max라는 변수를 선언해 입력받은 arr 중 가장 큰수를 반환하도록 하였습니다.
3. 삼항연산자를 사용하여 max 변수가 arr의 길이와 같다면 answer는 true를 반환하고 아닐 시 false를 반환합니다.
출력결과
console.log(solution([4,1,3])); // --> 3, false
console.log(solution([1,2,3,4])); // --> 4, true
console.log(solution([9,8,7])); // --> 3, false
console.log(solution([4,1,3,2])); // --> 4, true
'◼ 코딩테스트 > 구현 (Implementation)' 카테고리의 다른 글
(javascript) 알고리즘 - 스티커 모으기 (완벽설명, 이해) (4) | 2022.09.20 |
---|---|
(javascript) 알고리즘 문제 - 땅따먹기 ( 완벽이해, 설명 ) (1) | 2022.09.19 |
(javascript) 알고리즘 문제 - 가장 큰 정사각형 찾기 ( 완벽이해, 설명 ) (4) | 2022.09.16 |
(javascript) 알고리즘 문제 - 나머지 한 점 (1) | 2022.09.16 |
(javascript) 알고리즘 문제 - 자릿수 더하기 (1) | 2022.09.16 |