1475. 매장 특별 할인으로 최종 가격
난이도: 쉬움
주제: 배열, 스택, 단조 스택
가격[i]이 상점의 i번째 품목 가격인 정수 배열 가격이 주어졌습니다.
상점 내 상품에 대한 특별 할인이 진행됩니다. i번째 항목을 구매하면 가격[j]과 동일한 할인을 받게 됩니다. 여기서 j는 j > i 및 가격[j] <= 가격[i]. 그렇지 않으면 어떠한 할인도 받을 수 없습니다.
정수 배열 답변을 반환합니다. 여기서 답변[i]는 특별 할인을 고려하여 상점의 i번째 품목에 대해 지불할 최종 가격입니다.
예 1:
예 2:
예 3:
제약조건:
힌트:
해결책:
현재 가격보다 가격이 낮거나 같은 최신 품목이 있다는 조건에 따라 특별 할인을 적용해야 하며, 무차별 접근 방식을 사용할 수 있습니다. 가격 배열을 반복하고 각 항목에 대해 가격이 더 낮거나 같은 첫 번째 항목을 찾습니다. 이는 중첩 루프를 사용하여 달성할 수 있습니다. 스택을 활용하면 효율적으로 품목 가격을 추적하고 특별 할인을 적용할 수 있습니다.
스택 접근 방식:
엣지 케이스: 배열 내에서 더 낮은 가격의 품목이 없으면 할인이 적용되지 않습니다.
PHP에서 이 솔루션을 구현해 보겠습니다. 1475. 매장 특별 할인으로 최종 가격
설명:
초기화:
- $prices와 동일한 크기의 $result 배열을 만들고 0으로 초기화합니다.
외부 루프:
- 인덱스 $i의 각 가격을 반복하여 할인 후 최종 가격을 계산합니다.
내부 루프:
- 각 가격 $i에 대해 후속 가격 $j를 반복합니다(여기서 $j > $i).
- $prices[$j]가 $prices[$i]보다 작거나 같은지 확인하세요. true인 경우 $discount = $prices[$j]를 설정하고 내부 루프를 종료합니다.
최종 가격 계산:
- $prices[$i]에서 찾은 할인을 빼고 결과를 $result[$i]에 저장합니다.
반품 결과:
- 모든 가격을 처리한 후 최종 결과 배열을 반환합니다.
복잡성:
이 접근 방식은 가장 최적화된 솔루션은 아니지만 문제의 제약 조건(1 <= 가격.길이 <= 500) 내에서 작동합니다.
연락처 링크
이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!
이런 유용한 콘텐츠를 더 원하시면 저를 팔로우해주세요.
위 내용은 매장 특별 할인이 포함된 최종 가격의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!