주간 챌린지: 할인 계산

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

바이브코딩

대상자

  • Python 및 Perl 개발자
  • 알고리즘 문제 해결을 위한 실전 경험을 원하는 초보자 및 중급자
  • AI 도구 활용에 관심 있는 개발자

핵심 요약

  • 최대 연속 1 계산: max_countcurrent_count 변수를 사용한 간단한 반복 알고리즘으로, O(n) 시간 복잡도를 가짐
  • 할인 적용 로직: 각 항목의 후방 첫 번째 이하 가격을 할인으로 적용, 중첩 루프로 구현하여 O(n²) 시간 복잡도를 가짐
  • GitHub Copilot 활용: 코드 자동 생성을 통한 개발 효율성 향상

섹션별 세부 요약

1. 최대 연속 1 계산

  • max_countcurrent_count 변수를 초기화하여 0으로 설정
  • 배열의 각 요소를 순회하며 1일 경우 current_count 증가
  • current_countmax_count를 초과하면 max_count 갱신
  • 0을 만나면 current_count를 0으로 리셋
  • 예시: [0,1,1,0,1,1,1] → 최대 연속 1은 3

2. 할인 적용 알고리즘

  • final_price 함수로 각 항목의 뒤에 있는 최초 이하 가격을 할인으로 적용
  • 중첩 루프로 내부에서 j 인덱스를 순회하며 prices[j] <= prices[i] 조건 검사
  • 할인 적용 시 prices[i] - discount 계산 후 결과 저장
  • 예시: [8,4,6,2,3][4,2,4,2,3]

결론

  • AI 도구 활용: GitHub Copilot은 코드 생성 및 설명 제공으로 개발 생산성 향상에 유리
  • 시간 복잡도 고려: 대규모 데이터 처리 시 O(n²) 알고리즘 대신 스택 기반 최적화 방식을 고려해야 함
  • 실무 적용: 할인 로직은 쇼핑몰, 전자상거래 플랫폼의 가격 정책 설계에 활용 가능