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