leetcode-3190. Find Minimum Operations to Make All Elements Divisible by Three

Youngsun Joung·2025년 11월 22일

Leetcode

목록 보기
39/65

1. 문제 소개

3190. Find Minimum Operations to Make All Elements Divisible by Three

2. 나의 풀이

배열을 한 번 순회해 3으로 나눠지지 않는 숫자의 개수가 정답이다.
시간복잡도는 O(n)O(n)이다.

class Solution:
    def minimumOperations(self, nums: List[int]) -> int:
        ans = 0                                # 필요한 총 연산 횟수 누적 변수

        for num in nums:                       # nums의 모든 숫자를 순회
            if num % 3 != 0:                   # 숫자가 3의 배수가 아니라면
                ans += 1                       # +1 또는 -1 한 번으로 3의 배수로 만들 수 있으므로 연산 1회 추가
        
        return ans                              # 전체 필요한 최소 연산 횟수 반환

3. 다른 풀이

다음과 같이 한 줄로도 풀 수 있다.

class Solution:
    def minimumOperations(self, nums: List[int]) -> int:
        # x % 3 != 0 은 True/False 값을 가지며,
        # True는 1, False는 0으로 계산된다.
        # 즉, 3의 배수가 아닌 원소의 개수를 모두 더한 값이 정답.
        return sum(x % 3 != 0 for x in nums)

4. 결론

이번에는 진짜로 너무 쉬운 문제였다.

profile
Junior AI Engineer

0개의 댓글