프로그래머스 - 순열 검사

2021. 1. 22. 18:15·IT/알고리즘
반응형

문제 설명

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


숫자가 중복없이 이어져 있는지 여부를 확인하는 문제이다.

우선 제한사항 내용 중 배열의 길이가 10만 이하이므로 배열의 길이가 1일수도 있다.
배열의 길이가 1인 경우에는 무조건 중복없이 이어져 있음으로 IF문을 통해서 return True를 하도록 한다.

그 후 배열을 오름차순으로 정렬한 뒤, n-1번째 숫자에서 1을 더한 숫자가 n번째 숫자와 다른지 체크를 하고
만약 다르다면 이어져 있지 않거나 중복이므로 return False 를 한다.

for문을 return 없이 완료 되었다면 숫자가 중복없이 이어져 있음으로 return True 를 하도록 한다.

def solution(arr):
    if len(arr) <= 1:
        return True

    arr = sorted(arr)

    for i in range(1, len(arr)):
        if arr[i - 1] + 1 != arr[i]:
            return False

    return True
728x90
반응형
저작자표시 비영리 (새창열림)
'IT/알고리즘' 카테고리의 다른 글
  • [Python] 백준 1012 - 유기농 배추
  • [Python] 백준 2667 - 단지번호붙이기
  • 프로그래머스 - 가장 큰 정사각형 찾기
  • 프로그래머스 - 나머지 한 점
상쾌한기분
상쾌한기분
  • 상쾌한기분
    상쾌한기분
    상쾌한기분
  • 전체
    오늘
    어제
    • 분류 전체보기 (251)
      • Python (44)
        • Python (26)
        • Django (6)
        • Flask (4)
        • Open Source (6)
      • Kotlin & Java (5)
        • Spring (2)
        • 프로젝트 (1)
      • Go (11)
      • Database (24)
        • MySQL (21)
        • Redis (3)
      • Infrastructure (2)
        • CDC (4)
        • Kafka (5)
        • Prometheus (2)
        • Fluentd (11)
        • Docker (1)
        • Airflow (2)
        • VPN (2)
      • IT (26)
        • AI (9)
        • Langchain (8)
        • Web (18)
        • Git (8)
        • 리팩토링 (9)
        • Micro Service Architecture (8)
        • Clean Code (16)
        • Design Pattern (0)
        • 수학 (1)
        • 알고리즘 (14)
      • OS (14)
        • Centos (10)
        • Ubuntu (3)
        • Mac (1)
      • Search Engine (2)
        • ElasticSearch (1)
        • Lucene Solr (1)
      • PHP (2)
        • Laravel (1)
        • Codeigniter (1)
  • 블로그 메뉴

    • Github 방문
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Golang
    Langchain
    python
    docker
    Redis
    git
    http
    백준
    performance
    go
    파이썬
    ollama
    LLM
    CDC
    MYSQL
    티스토리챌린지
    오블완
    Kafka
    fluentd
    prompt
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상쾌한기분
프로그래머스 - 순열 검사
상단으로

티스토리툴바