알고리즘 풀이/백준(Boj)

백준(BOJ) 16974번 레벨 햄버거

100win10 2020. 1. 18. 14:45

문제 : https://www.acmicpc.net/problem/16974

 

16974번: 레벨 햄버거

상근날드에서 오랜만에 새로운 햄버거를 출시했다. 바로 레벨-L 버거이다. 레벨-L 버거는 다음과 같이 만든다. 레벨-0 버거는 패티만으로 이루어져 있다. 레벨-L 버거는 햄버거번, 레벨-(L-1) 버거, 패티, 레벨-(L-1)버거, 햄버거번으로 이루어져 있다. (L ≥ 1) 예를 들어, 레벨-1 버거는 'BPPPB', 레벨-2 버거는 'BBPPPBPBPPPBB'와 같이 생겼다. (B는 햄버거번, P는 패티) 상도가 상근날드에 방문해서 레벨-N 버거를 시켰

www.acmicpc.net

 

풀이 :

 

우선 hb [n] 은 n번째 레벨의 전체 재료의 수고 p [n] 은 p번째 레벨의 패티 수로 각 레벨의 전체 재료와 패티 수를 구한다.

 

그리고 x의 갯수에 따라 이전 레벨에서 처리하도록 넘겨주거나 그 값이 확실하다면 바로 반환하도록 하였다.

 

x 가 1이라면 무조건 햄버거 번이니 0을 반환하고

 

x 가 중앙에 오는 패티라면 전에 패티 + 중앙 패티가 답이 될 것.

 

 

 

코드 ( C++ )