티스토리 뷰

728x90

https://school.programmers.co.kr/learn/courses/18/lessons/1877

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제

문제 설명
길이가 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를 반환하면 됩니다.

 

코드

import java.util.*;

class Solution {
    public boolean solution(int[] arr) {
        Arrays.sort(arr);
        for(int i = 0; i < arr.length; i++) {
            if(arr[i] != i+1){
                return false;
            }
        }
        return true;
    }
}

 

설명

- 주어진 배열 arr 의 길이에서 순차적인 수가 들어있는지 확인하여 값이 들어있지 않을 경우 false 

- arr 의 배열 길이가 4라고 한다면 arr 배열안의 값에는 1 ~ 4 값이 들어있다면 true

- 주어진 배열을 오름차순 정렬 후 반복문을 돌려 값을 비교해보면 결과 값을  도출할 수 있습니다.

728x90

'알고리즘 > 프로그래머스' 카테고리의 다른 글

프로그래머스 - 자릿수더하기  (0) 2023.02.27
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함