본문 바로가기
개발&코딩/Python

중간값 구하기 알고리즘 (Python_Algorithm, median)

by 우동이 2020. 12. 27.
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

댓글