PS/SW Expert Academy

[SWEA 19113] 식료품 가게 [C/C++]

kimyoungrok 2024. 1. 1. 19:09

문제

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


풀이

N개의 할인가와, N개의 원가가 오름차순으로 주어진다.

모든 원가격은 4의 배수이기 때문에 할인가격 또한 정수이다.

 

가격 배열 P에 대해 P(0) 부터 순차적으로 할인가라 가정하자.

P(i)에 대해 P(i + 1) <= P(j) <= P(N) 중 ( P(i) * 4 ) * 3 = P(i)을 만족하는 할인가 P(j)를 찾으면 된다.

이미 탐색한 원가와 할인가는 탐색대상에서 제외( P[i] == -1 )하자.

 

P는 항상 올바르게 주어지기 때문에 위 풀이는 항상 성립한다.

 

할인가는 항상 원가보다 작으며, 오름차순으로 정렬된 P에 대해 순서대로 찾은 할인가들의 배열 res 또한 오름차순 정렬임이 보장된다.


문제오류

입력조건이 P(i) <= 109로 되어있다

1 <= P(i) <= 10^9가 올바른 입력조건이다. 때문에 할인가의 원가를 계산할 때 int type이라면, overflow가 발생할 수 있으니 유의하자.


소스코드

보기

 

'PS > SW Expert Academy' 카테고리의 다른 글

[SWEA 19004] 점프 놀이 [C/C++]  (2) 2024.01.05
[SWEA 19003] 팰린드롬 문제 [C/C++]  (0) 2024.01.02