주간 챌린지: 할인 계산
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
바이브코딩
대상자
- Python 및 Perl 개발자
- 알고리즘 문제 해결을 위한 실전 경험을 원하는 초보자 및 중급자
- AI 도구 활용에 관심 있는 개발자
핵심 요약
- 최대 연속 1 계산:
max_count
와current_count
변수를 사용한 간단한 반복 알고리즘으로, O(n) 시간 복잡도를 가짐 - 할인 적용 로직: 각 항목의 후방 첫 번째 이하 가격을 할인으로 적용, 중첩 루프로 구현하여 O(n²) 시간 복잡도를 가짐
- GitHub Copilot 활용: 코드 자동 생성을 통한 개발 효율성 향상
섹션별 세부 요약
1. 최대 연속 1 계산
max_count
와current_count
변수를 초기화하여 0으로 설정- 배열의 각 요소를 순회하며
1
일 경우current_count
증가 current_count
가max_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²) 알고리즘 대신 스택 기반 최적화 방식을 고려해야 함
- 실무 적용: 할인 로직은 쇼핑몰, 전자상거래 플랫폼의 가격 정책 설계에 활용 가능