본문 바로가기
알고리즘

효율을 높이는 방법 - 조건문

by 느림보어른 2021. 8. 16.

1. 중복 조건 비교 제거

def med3(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

위의 코드에서 if와 elif의 조건을 보면 a와 b의 값 비교가 중복되어 있음을 알 수 있다.

이러한 비교 조건의 중복은 코드의 효율을 나쁘게 만드는 요소이다.

2. 반복문 안에 조건문 제거

sum = 0
for i in range(a, b + 1):
    if i < b:
        print(f'{i} + ', end='')
    else:
        print(f'{i} = ', end='')
    sum += i

위의 코드는 반복문 안에 조건문이 있는 구조로 반복될 때마다 조건문이 실행되는 비효율적인 구조를 띄고 있다.

조건을 살펴보면 카운터용 변수 i가 b보다 작은 지를 비교한다. 이는 곧 카운터용 변수가 조건문의 마지막 원소인지를 비교하는 것과 일치한다. 이러한 경우 반복문이 다 실행된 뒤 else문에 해당하는 코드를 실행하는 구조로 설계하면 반복문 내에서 조건문을 사용할 필요가 없어진다.

이러한 경우와 같이 굳이 반복문 안에서 조건문을 사용할 필요가 없는 구조는 회피하는 편이 코드의 효율을 높일 수 있다.

참고

http://www.yes24.com/Product/Goods/91219874

 

Do it! 자료구조와 함께 배우는 알고리즘 입문 : 파이썬 편 - YES24

기업 코딩 테스트와 모든 시험의 기초가 되는 ‘자료구조와 알고리즘’!213개의 그림과 136개의 파이썬 실전 예제로 빠르고! 쉽게! 배운다.자료구조와 알고리즘은 국내외 IT 기업의 면접과 코딩

www.yes24.com