300x250
중간값 구하기 알고리즘을 Python으로 구현해보자
중간값을 구하려면 비교할 수 있는 수가 최소 3가지는 되어야 확인이 가능하다.
그 전에 코드가 난잡해지는걸 방지하기 위해 모듈 하나를 만들어서 쓰도록 하자.
Module
#input.py
def inputvalue3():
print('세 정수의 중앙값.')
a = int(input('a의 값을 입력 >>'))
b = int(input('b의 값을 입력 >>'))
c = int(input('c의 값을 입력 >>'))
return a,b,c
inputvalue3()는 세 정수의 값을 입력받는 함수고
input.py로 따로 파일을 만들어 모듈화 하였다.
1. 첫번째 중간값 구하기
import time
from input import inputvalue3
start = time.time() # 시작 시간 저장 (start)
def median(a,b,c):
if (b>=a and c<=a) or (b<=a and c>=a):
return a
elif(a>b and c<b) or (a<b and c>b):
return b
return c
a,b,c = inputvalue3()
print('median : {}'.format(median(a,b,c)))
print("time :", time.time() - start) # 현재시간 - 시작시간 = 즉 실행시간
중간값을 구하는 결과는 잘 나온다 하지만
if, elif 두 개의 조건문 속에서 and or 중복 연산자를 통해
연산과정이 지나치게 길어지기 때문에
쓸데없는 판별횟수가 증가한다 그래서 아래 코드처럼
2. 두번째 중간값 구하기
import time
from input import inputvalue3
start = time.time() # 시작 시간 저장 (start)
def median(a,b,c):
if a>=b:
if b>=c:
return b
elif a<=c:
return a
else:
return c
elif a>c:
return a
elif b>c:
return c
else:
return b
a,b,c = inputvalue3()
print('median : {}'.format(median(a,b,c)))
print("time :", time.time() - start) # 현재시간 - 시작시간 = 즉 실행시간
한 번의 판별 과정으로 중간값 선별을 하는게 더 바람직하다.
300x250
'개발&코딩 > Python' 카테고리의 다른 글
a 부터 b 까지의 합 - Python Algorithm loop_basic (2) | 2021.01.03 |
---|---|
n까지의 합 - Python Algorithm loop_basic (0) | 2021.01.03 |
무신사 홈페이지에서 키워드 수집해오기 (Python_Crawler) BeautifulSoup (0) | 2020.12.19 |
Python Algorithm 기초 공부1 (0) | 2020.12.13 |
[Python] numpy, random 라이브러리로 로또 번호 생성기 만들기 (0) | 2020.09.16 |
댓글