pannenkoek2012 는 A 버튼을 몇 번만 누르면 Super Mario 64 를 완성 하여 마리오가 점프 하는 것을 목표 로합니다. 각 "A 프레스"는 세 부분으로 구성됩니다.
- 버튼을 누르면
- 일정 시간 동안 유지
- 그것을 풀어
위의 이미지가 포함 된 자세한 설명 은 이 비디오 (1:15-3:23) 를 참조하십시오 . (단,이 과제는 반 프레스 용어를 사용하지 않으며 A를 출시해야하는 장애물을 찾아냅니다.)
태스크:
A 버튼을 누르거나 (P) 누르고 있거나 (H) 해제 (R)해야하는 일련의 장애물이있는 경우 주어진 순서대로 극복하기 위해 필요한 최소한의 프레스를 출력합니다. A 버튼은 처음에는 유지되지 않습니다.
공식적으로 말하면 : 문자 S의 문자열이 주어지면 S를 하위 시퀀스로 포함 PHR
하는 형식의 문자열을 고려하여 (PH*R)*
해당 문자열에서 가능한 가장 작은 수를 출력하십시오 P
. 또는 P?H*R?
S를 나눌 수있는 가장 작은 청크 수를 찾으십시오 .
예
input을 보자 RHRPHHHR
. A 버튼은 누르고 있지 않기 때문에 초기 장애물을 극복 R
하려면 버튼을 눌렀다가 놓아야 합니다 (# 1 누름). 다음으로 우리는 버튼을 누르고 있어야합니다 H
.이 버튼 을 다시 눌러야합니다 (# 2를 누르십시오). 그런 다음 나중에 해제하여 이후를 만족시킬 R
수 있습니다. 마지막으로, 나머지는 PHHHR
하나의 프레스 (눌러 # 3)에 의해 만족 될 수있다 유지시킴으로써 HHH
및 해제 R
. 따라서 출력 카운트는 3입니다.
그것을 보는 또 다른 방법은 입력 문자열을 PHH..HHR
글자를 생략 할 수있는 형태의 3 부분으로 나눌 수 있다는 것입니다.
R
HR
PHHHR
입력 형식
입력은 다음과 같은 선택으로 프레스, 홀드 및 릴리스를 나타내는 요소 목록 또는 문자열입니다.
P, H, R
p, h, r
1, 2, 3
0, 1, 2
주어진 순서대로 일치합니다. 입력이 비어 있지 않습니다.
테스트 사례 :
P 1
H 1
R 1
HP 2
RHP 3
HHR 1
PHRH 2
RHRPHHHR 3
HHHHHH 1
PPRRHHPP 6
HPPRHRPRHPPRHPPHRP 12
PRHRHPHHPRRRHPPRHHPPRRRHRHPRPHPRPRHHRPPPRHPRP 28
리더 보드 :