Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 홀수 자리와 짝수 자리 숫자의 곱이 같은지 확인하는 방법

숫자 n이 주어졌을 때, 홀수 자리에 있는 숫자들의 곱짝수 자리에 있는 숫자들의 곱이 서로 같은지 확인하는 문제를 파이썬으로 해결해 보겠습니다.

예를 들어 입력값이 n = 2364라고 가정해 봅시다. 이 경우 홀수 자리 숫자들의 곱은 2 × 6 = 12이고, 짝수 자리 숫자들의 곱은 3 × 4 = 12입니다. 두 곱이 동일하므로 결과는 True가 됩니다.

문제 해결 접근 방식

이 문제는 다음 단계를 따라 해결할 수 있습니다.

  • 숫자가 10보다 작으면 자릿수가 하나뿐이므로 False를 반환합니다.
  • 홀수 자리 곱(odd_place)과 짝수 자리 곱(even_place)을 각각 1로 초기화합니다.
  • 숫자가 0보다 큰 동안 반복합니다.
    • 마지막 자릿수를 구해 odd_place에 곱한 뒤, 숫자를 10으로 나눕니다.
    • 숫자가 0이 되면 반복을 종료합니다.
    • 다시 마지막 자릿수를 구해 even_place에 곱한 뒤, 숫자를 10으로 나눕니다.
  • 반복이 끝난 후 두 곱이 같으면 True, 다르면 False를 반환합니다.

파이썬 구현 코드

아래 예제 코드를 통해 더 쉽게 이해할 수 있습니다.

def solve(num):
    if num < 10:
        return False
    odd_place = 1
    even_place = 1
    while num > 0:
        d = num % 10
        odd_place *= d
        num = num // 10
        if num == 0:
            break
        d = num % 10
        even_place *= d
        num = num // 10
    if odd_place == even_place:
        return True
    return False

num = 2364
print(solve(num))

입력

2364

출력

True

코드 설명

위 코드는 숫자를 오른쪽부터 한 자리씩 처리하면서 번갈아 가며 홀수 자리 곱과 짝수 자리 곱을 계산합니다. 나머지 연산(% 10)으로 마지막 자릿수를 추출하고, 정수 나눗셈(// 10)으로 이미 처리한 자릿수를 제거하는 방식입니다. 시간 복잡도는 자릿수에 비례하여 O(log n)이므로 매우 효율적입니다.