규도자 개발 블로그
[프로그래머스/연습문제/파이썬3(python3)] 배열 검증하기 본문
문제
길이가 n일 배열에 1부터 n까지 숫자가 중복 없이 한 번씩 들어있는지를 확인하려고 합니다.
1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는 경우 true를, 아닌 경우 false를 반환하도록 함수 solution을 완성해주세요.
제한사항
- 배열의 길이는 10만 이하입니다.
- 배열의 원소는 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를 반환하면 됩니다.
풀이
def solution(arr):
arr.sort()
answer = True if arr[len(arr) - 1] == len(arr) else False
return answer
설명
굉장히 간단하게 생각했다. 이 문제에서 말하는 조건을 그냥 자연어로 정리해보자면 이렇다.
배열이 오름차순으로 정렬돼있을 때 마지막 요소에 해당하는 숫자가 해당 인덱스 키값 + 1이 아니면 조건을 충족하지 못하는 것이다.
해서 코드로 이렇게 구현하였다. Python에서는 result = condition ? true : false
형태의 3항 연산자를 사용할 수 없기 때문에 위 모양으로 구현하여야 한다. 해서 이렇게 만들어졌다.
'알고리즘 > 풀이' 카테고리의 다른 글
[백준/1001/자바(Java)] A - B (0) | 2018.09.16 |
---|---|
[백준/1000/자바(Java)] A + B (0) | 2018.09.16 |
[프로그래머스/Level1/파이썬3(python3)] [1차] 다트 게임 (2018 KAKAO BLIND RECRUITMENT) (0) | 2018.09.15 |
[프로그래머스/Level1/파이썬3(python3)] [1차] 비밀지도 (2018 KAKAO BLIND RECRUITMENT) (0) | 2018.09.15 |
[프로그래머스/연습문제/파이썬3(python3)] 별찍기 (0) | 2018.09.15 |
Comments