본문 바로가기
Python/알고리즘

[COS PRO 2급 #6-8] 주어진 수와 뒤집은 수의 차 구하기

by 포푸리 (POPOOLY) 2023. 2. 10.
반응형

문제설명

주어진 수와 주어진 수를 뒤집은 수와의 차를 계산하려고 합니다.

예를 들어, 주어진 수가 120인 경우 이를 뒤집으면 021입니다. 십진수에서 앞의 0은 제거해야하므로 120을 뒤집은 수는 21입니다. 따라서 120과 21의 차는 99 입니다.

이를 계산하기 위해 다음과 같이 프로그램 구조를 작성했습니다.

```
1. 주어진 수의 자릿수를 구합니다.
2. 구한 자릿수를 이용하여 주어진 수를 거꾸로 뒤집습니다.
3. 주어진 수와 뒤집은 수의 차이를 구합니다.
```

수 number가 주어질 때, 주어진 수와 주어진 수를 뒤집은 수와의 차를 return 하도록 solution 함수를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 func_a, func_b, func_c 함수와 매개변수를 알맞게 채워주세요.

매개변수 설명

수 number가 solution 함수의 매개변수로 주어집니다.
* 수 number는 1 이상 10,000 이하인 정수입니다.

return 값 설명

주어진 수 number와 number를 뒤집은 수와의 차를 return 합니다.

예시

| number | return |
|--------|--------|
| 120 | 99  |
| 23  | 9   |

예시설명

예제 #1
문제에 나온 예와 같습니다.

예제 #2
23을 반대로 뒤집으면 32가 되고 이때 두 수의 차는 9 입니다.

문제 코드

def func_a(number1, number2):
    ret = 0
    if number1 > number2:
        ret = number1 - number2
    else:
        ret = number2 - number1
    return ret

def func_b(number):
    ret = 0
    while number != 0:
        number = number // 10
        ret += 1
    return ret

def func_c(number, digit):
    ret = 0
    for i in range(digit):
        temp = number % 10
        number = number // 10
        ret = ret * 10 + temp
    return ret

def solution(number):
    answer = 0
    digit = func_@@@(@@@)
    convert_number = func_@@@(@@@)
    answer = func_@@@(@@@)
    return answer

풀이

# 두 수의 차 구하기
def func_a(number1, number2):
    ret = 0
    if number1 > number2:
        ret = number1 - number2
    else:
        ret = number2 - number1
    return ret

# 자리수 구하기
def func_b(number):
    ret = 0
    while number != 0:
        number = number // 10
        ret += 1
    return ret

# 수 뒤집기
def func_c(number, digit):
    ret = 0
    for i in range(digit):
        temp = number % 10
        number = number // 10
        ret = ret * 10 + temp
    return ret

def solution(number):
    answer = 0
    digit = func_b(number)
    convert_number = func_c(number, digit)
    answer = func_a(number, convert_number)
    return answer

댓글