농경제학도의 지식창고

[Python] '절댓값 구하기' 알고리즘 본문

프로그래밍 언어/Python 알고리즘

[Python] '절댓값 구하기' 알고리즘

Guk developer 2021. 4. 29. 04:01

 

본문은 <모두의 알고리즘 with 파이썬>(길벗, 2017)을 학습하고 개인 학습용으로 정리한 내용입니다.

 

안녕하세요, 오늘은 Python '절댓값 구하기' 알고리즘에 대해 알아보겠습니다.

 

절댓값은 '수직선 위의 원점에서 어떤 점까지의 거리'를 의미하는데요,

예를 들어 '-5'의 절댓값은 '5'입니다.

 

이러한 절댓값 구하기 원리를 알고리즘으로 구현하는 방법에는 크게 2가지가 있습니다.

1. 입력받은 값의 부호를 판단 → 양수이면 그대로 출력, 음수이면 부호의 반대로 출력

 

2. 입력받은 값을 제곱 → 제곱 값의 제곱근을 출력

 

본문에서는 1, 2를 실제 Python 코드로 구현해보겠습니다


#1. 부호판단 활용

0. 사용자가 입력한 인수'a'라는 매개변수로 받은 후  

 

1. 'a의 부호'를 판단해 0보다 크거나 같으면 'a'를 반환하고 0보다 작으면 '-a'를 반환하는 함수를 코드로 구현하면 아래와 같습니다

def abs_mark(a): # 부호활용
    if a >= 0:
        return a # a를 반환
    else:
        return -a # -a를 반환

 

2. 그리고 함수를 원하는 인수와 함께 호출해주면 값이 정상적으로 출력됩니다.

print(abs_mark(5)) # 5 출력
print(abs_mark(-3)) # 3 출력

#2. 제곱근 활용

먼저 제곱근을 활용하기 위해서는 '수학 모듈'을 활용해야 합니다.

수학 모듈에서는 제곱근 이외에도 삼각함수, 로그함수 등 수학과 관련된 다양한 기능을 제공합니다.

수학 모듈을 활용하면 별개로 복잡한 함수를 만들지 않아도 쉽게 계산할 수 있습니다.

 

수학 모듈을 불러오는 방법은 크게 2가지가 있습니다.

import math

 

위의 식처럼 작성하면 수학 함수를 시작할 때 'math.'를 앞에 붙여주어야 합니다

 

from math import *

그러나, 위의 식처럼 작성하면 수학 함수를 시작할 때 따로 'math.'를 앞에 붙이지 않아도 됩니다.

 

(다시 본론으로...)


0. 사용자가 입력한 인수를 'a'라는 매개변수로 받은 후

 

1. 'a'를 제곱해 새로운 변수 'a_squ'에 저장합니다.

 

2. 새로운 변수에 수학 모듈의 제곱근 함수(sqrt)를 적용한 값을 return합니다.

 

(0~2의 과정을  abs_squ라는 이름의 함수로 구현하면 다음과 같습니다)

def abs_squ(a):
    a_squ = a * a # a를 제곱
    return math.sqrt(b) # 수학 모듈의 제곱근 함수

 

3. 그리고 함수를 원하는 인수와 함께 호출해주면 값이 정상적으로 출력됩니다.

print(abs_squ(5)) # 5 출력
print(abs_squ(-3)) # 3 출력

오늘은 이렇게 Python에서 '절댓값 알고리즘'을 구현하는 법에 대해 알아보았습니다.

다음번에 또 다른 '알고리즘에 대한 내용'으로 찾아오겠습니다.

Comments