[LeetCode] 2177. Find Three Consecutive Integers That Sum to a Given Number

김민우·2022년 10월 29일
0

알고리즘

목록 보기
55/189

- Problem

2177. Find Three Consecutive Integers That Sum to a Given Number

임의의 정수 num이 주어진다. 이 때, 증가하는 3개 정수의 합이 num이 같다면 3개의 정수를 리턴한다. 없다면 빈 배열을 반환한다.

예시를 보면, num = 33이 주어지고, 연속적인 3개의 정수 10, 11, 12의 합은 33을 만족한다. 그러므로, [10, 11, 12]를 리턴한다.

임의의 정수를 x라고 둘 때, 연속적인 세 개의 정수는 x-1, x, x+1로 둘 수 있다. 이 세 정수의 합은 3x이다.
주어진 num이 3의 배수이여야 연속적인 세 개의 정수를 구할 수 있다.
즉, 주어진 num이 3의 배수가 아니거나 0이 아니라면 빈 배열을 반환한다.

  • if num%3: return []

만약, num이 3의 배수라면 다음과 같이 작성할 수 있다.

  • if num%3 == 0: return [num//3 - 1, num//3, num//3 + 1]

- 내 풀이

class Solution:
    def sumOfThree(self, num: int) -> List[int]:
        i = num // 3
        
        if num % 3 == 0:
        	return [i-1, i, i+1]
        
        return []

- 결과

시간 복잡도 O(1)를 만족하는 풀이이다.

profile
Pay it forward.

0개의 댓글