[알고리즘] Chapter04. 알고리즘 문제 풀이

황성미·2023년 7월 28일
0
post-thumbnail
post-custom-banner

✍🏻 26일 공부 이야기.

지금까지 배웠던 알고리즘 문제 풀이!!
이론 강의 시간에 풀었던 문제들이랑 비슷해서
이번에도 역시 백준에서 몇 문제 끄적여봤다 👀👀



재귀

다음은 'A상사'의 2021년 월별 매출을 나타내는 표이다. 재귀 알고리즘을 이용해서 1월부터 12월까지 전월 대비 매출 증감액을 나타내는 프로그램을 완성해라

sales =[12000,13000,12500,11000,10500,98000,91000,91500,10500,11500,12000,12500]

def salesUpAndDown(ss):
  if len(ss) == 1: #sales 리스트의 개수가 1개라면 매출 증감액을 표시하지 않아도 됨(종료조건)
    return ss 

  print(f'sales : {sales}')
  currentSales = ss.pop(0) #맨 앞 데이터를 추출해서 sales 리스트에서 빼줌
  nextSales = ss[0] #다음달 sales는 또 다시 맨 앞의 데이터가 됨
  increase = nextSales - currentSales
  
  if increase > 0:
    increase = '+' + str(increase)
  print(f'매출 증감액 : {increase}')

  return salesUpAndDown(ss) #맨 앞 데이터가 빠진 채로 다시 함수를 실행


if __name__ == '__main__':
  salesUpAndDown(sales)

💻 출력

sales : [12000, 13000, 12500, 11000, 10500, 98000, 91000, 91500, 10500, 11500, 12000, 12500]
매출 증감액 : +1000
sales : [13000, 12500, 11000, 10500, 98000, 91000, 91500, 10500, 11500, 12000, 12500]
매출 증감액 : -500
sales : [12500, 11000, 10500, 98000, 91000, 91500, 10500, 11500, 12000, 12500]
매출 증감액 : -1500
sales : [11000, 10500, 98000, 91000, 91500, 10500, 11500, 12000, 12500]
매출 증감액 : -500
sales : [10500, 98000, 91000, 91500, 10500, 11500, 12000, 12500]
매출 증감액 : +87500
sales : [98000, 91000, 91500, 10500, 11500, 12000, 12500]
매출 증감액 : -7000
sales : [91000, 91500, 10500, 11500, 12000, 12500]
매출 증감액 : +500
sales : [91500, 10500, 11500, 12000, 12500]
매출 증감액 : -81000
sales : [10500, 11500, 12000, 12500]
매출 증감액 : +1000
sales : [11500, 12000, 12500]
매출 증감액 : +500
sales : [12000, 12500]
매출 증감액 : +500



백준

버블정렬

💡 버블정렬 이론 정리

  • 23968번
    오름차순으로 버블 정렬을 하는데, K번째 교환되는 수를 출력하는 문제이다.


    🤯 코드는 맞게 돌아가는데... 자꾸 시간 초과가 뜬다아..ㅠㅠ

👀 내 풀이 바로 가기


삽입정렬

💡 삽입정렬 이론 정리

🤯 흐아.... 그냥 돌릴땐 값이 잘 나오는데.. 뭐가 틀린건지 모르겠다...;;

👀 내 풀이 바로가기
나중에 성공하면 업데이트 해두기..!!



선택 정렬

💡 선택정렬 이론 정리

  • 23881번
    최대값을 기준으로 선택정렬하는데, K번째 교환되는 두 수를 출력하는 문제이다.

👀 내 풀이 바로가기

profile
데이터 분석가(가 되고픈) 황성미입니다!
post-custom-banner

0개의 댓글