Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 숫자와 그 삼중


nums라고 하는 숫자 목록이 있다고 가정하면 하나가 다른 숫자의 3배가 되도록 두 개의 숫자가 있는지 확인해야 합니다.

따라서 입력이 nums =[2, 3, 10, 7, 9]와 같으면 9는 3의 3배이므로 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 나는 :=0

  • 목록 정렬 n

  • j :=1

  • 동안 j

    • 3*n[i]가 n[j]와 같으면

      • 참을 반환

    • 3*n[i]> n[j]이면

      • j :=j + 1

    • 그렇지 않으면

      • 나는 :=나는 + 1

  • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

class Solution:
   def solve(self, n):
      i = 0
      n.sort()
      j = 1
      while (j < len(n)):
         if (3*n[i] == n[j]):
            return True
         if (3*n[i] > n[j]):
            j += 1
         else:
            i += 1
      return False
ob = Solution()
print(ob.solve([2, 3, 10, 7, 9]))

입력

[2, 3, 10, 7, 9]

출력

True