320x100
이번 것은 재귀알고리즘의 기초를 볼 수있는 기초 알고리즘과 같으므로
나에겐 매우 중요하다.
# 최소값 알고리즘2
# 재귀 알고리즘 (내가 나를 호출하는 방식)
# 다음은 A상사의 2021년 월별 매출을 나타내는 표이다.
# 재귀 알고리즘을 이용해서 1월 부터 12월 까지 전월대비 매출 증감액을
# 나타내는 프로그램을 만들어보자
# 재귀팁이 2개 있다. 그 두가지가 있기에 재귀적으로 작동이 되는것이다.
# 매출은 천원단위이다.
# 1월 - 12,000원
# 2월 - 13,000원
# 3월 - 12,500원
# 4월 - 11,000원
# 5월 - 10,500원
# 6월 - 98,000원
# 7월 - 91,000원
# 8월 - 91,500원
# 9월 - 10,500원
# 10월 - 11,500원
# 11월 - 12,000원
# 12월 - 12,500원
sales = [12000,13000,12500,11000,10500,98000,91000,91500,10500,11500,12000,12500]
print(len(sales))
def salesUpAndDown(ss):
# 재귀2. 길이를 넘어서 계속 반복하면 범위 초과가 되기때문에 이걸로 제어해준다.
if len(ss) == 1:
return ss
print(f'sales: {ss}')
# 인덱스 0의 값을 제거하고 머금고 있는다.
currentSalse = ss.pop(0)
nextSales = ss[0]
# 증감액을 구해주는 것
increase = nextSales - currentSalse
# 매출이 감소되었을때는 -가 자동으로 나오지만 +는 생략된다.
# 이를 위해서 이 if문 2줄을 만들어준다.
if increase >0 :
# '+'는 문자인데 increase는 기본적으로 숫자이기때문에 스트링 처리를 해준다.
increase = '+' + str(increase)
print(f'매출 증감액: {increase}')
# 1회에 지나지 않고 전체적으로 해야하지만
# 여기까지만 있어서는 1회만 작동된다.
# 재귀1. 따라서 이걸 써준다. 재귀반복을 위해서
return salesUpAndDown(ss)
if __name__ == '__main__':
salesUpAndDown(sales)
300x250
'개발일지 > Python' 카테고리의 다른 글
파이썬 순위알고리즘2 숫자,아스키코드를 숫자 전환하여 순위비교 (0) | 2022.05.22 |
---|---|
** 파이썬 최빈값 알고리즘1, 빈도수에 따라서 +표시출력 (0) | 2022.05.22 |
파이썬 최대값 알고리즘 (0) | 2022.05.21 |
파이썬 재귀함수를 이용한 병합정렬 알고리즘 (0) | 2022.05.21 |
파이썬 선택정렬 알고리즘 (오름차순, 내림차순) (0) | 2022.05.21 |