강승현입니다
    • 홈
    • 태그
    • 방명록

    카테고리

    • 전체 글 (118)
      • 후기 (38)
        • 경험 (15)
        • SSAFY (9)
        • 코딩테스트 (3)
        • 넥스터즈 (6)
        • 회고 (5)
      • Degrees (2)
      • Tech (33)
      • OnlineJudge (45)
    OnlineJudge

    [Codility] Lesson4 PermCheck 풀이 Python

    CODe_byCODe_·2021. 6. 21. 23:14

     

    문제로이동

     

    PermCheck coding task - Learn to Code - Codility

    Check whether array A is a permutation.

    app.codility.com


    목차

       

       


       


      문제 설명

      N개의 정수 배열 A가 주어집니다. 단, 중복되는 수는 없으며 연속되지 않는 정수를 찾아내는 문제입니다.

      두 가지 상황을 예로 들자면,

       

      A[0] = 4

      A[1] = 1

      A[2] = 3

      A[3] = 2

       

      위 Example의 경우 총 4개(최대 4)의 정수가 주어졌으며 1부터 4까지 모든 수가 존재합니다.

      반대의 경우를 봅시다.

       

      A[0] = 4

      A[1] = 1

      A[2] = 3

       

      위 Example의 경우 총 3개(최대 4)의 정수가 주어졌으며 2를 제외한 모든 수가 존재합니다.

       

      이 때, N까지 모든 수가 사용되었다면 1을 반환하고, 그렇지 않다면 0을 반환해야 합니다.

      접근 방법

      Sort를 이용하여 정렬한 후 이전 Index와 현재 Index를 비교했을 때 1씩 차이가 난다면 연속된 수, 그렇지 않다면 연속되지 않은 수이기 때문에 이 성질을 이용하여 반복문을 수행합니다.

       

       


      소스 코드

      Python

      def solution(A):
          A.sort()
          if A[0]!=1:return 0
          for i in range(1,len(A)):
              if A[i]-A[i-1]!=1:
                  return 0
          return 1
      
      print(solution([4,1,3,2]))
      print(solution([4,1,3]))

      Java8

      #
      반응형
      저작자표시 비영리 변경금지 (새창열림)
      'OnlineJudge' 카테고리의 다른 글
      • [Codility] Lesson4 MissingInteger 풀이 Python
      • [Codility] Lesson4 FrogRiverOne 풀이 Python
      • 백준 21611 마법사 상어와 블리자드 python
      • 백준 10423 전기가 부족해 풀이 python
      CODe_
      CODe_
      개발과 관련된 다양한 정보를 몰입감있게 전달합니다.
      최신 글

      티스토리툴바