일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 파이썬 독학
- 파이썬 알고리즘
- 서울대 피어튜터링
- 재귀함수
- Notion 대학생
- 대학생 과제 Tip
- 마이스누 스크랩
- html 독학
- 문서 내 이동
- 한글 북마크
- 알고리즘 기초
- 모두의 알고리즘 with 파이썬
- 교내 튜터링
- Word 북마크
- 프로그래밍 독학
- python algorithm
- 직접곱
- 대학교 공지 관리
- 서울대 교내 프로그램
- 공지사항 스마트하게 관리
- 서울대 튜터링
- 서울대 공지사항
- 피어튜터링
- 데카르트곱
- 마이스누 공지
- 알고리즘 공부
- 팩토리얼 구하기
- Algorithm 학습
- python 알고리즘
- html 기본문법
- Today
- Total
농경제학도의 지식창고
[Python] '절댓값 구하기' 알고리즘 본문
본문은 <모두의 알고리즘 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에서 '절댓값 알고리즘'을 구현하는 법에 대해 알아보았습니다.
다음번에 또 다른 '알고리즘에 대한 내용'으로 찾아오겠습니다.
'프로그래밍 언어 > Python 알고리즘' 카테고리의 다른 글
[Python] '최대공약수 구하기' 알고리즘 (0) | 2021.10.21 |
---|---|
[Python] '팩토리얼' 알고리즘 (0) | 2021.10.21 |
[Python] '동명이인 찾기1' 알고리즘 (3) | 2021.05.09 |
[Python] '최댓값 찾기' 알고리즘 (0) | 2021.05.01 |
[Python] '1부터 n까지의 합 구하기' 알고리즘 (0) | 2021.04.30 |