키보드를 사용하여 문자 'A'를 쓰려고 한다고 가정해 보겠습니다. 우리의 목표는 4개의 키만 사용하고 텍스트 필드에 최대 'A'를 쓰는 것입니다. 키는 'A', 'C', 'V', 'Ctrl'입니다.
최대 개수의 A를 작성하려면 Ctrl + A를 사용하여 모두를 선택하고 Ctrl + C를 사용하여 복사하고 Ctrl + V를 사용하여 붙여넣습니다.
따라서 입력이 키 입력 횟수가 7과 같으면 A를 세 번 누를 때 출력이 9가 됩니다.
그런 다음 Ctrl+A, Ctrl+C, Ctrl+V, Ctrl+V
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
keyStrokes <=6이면
-
리턴 키스트로크
-
-
n :=1에서 6에 대해 수행
-
결과[n-1] :=n
-
-
n :=7의 경우 keyStrokes, 수행
-
결과[n-1] :=0
-
중단점의 경우:=n-3에서 1까지, 수행
-
curr :=(n – 중단점 - 1)*결과[중단점 - 1]
-
curr> result[n-1]이면
-
결과[n - 1] :=curr
-
-
-
-
결과[키스트로크 - 1]
예시
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −
#include<iostream> using namespace std; int keyNumbers(int keystrokes){ //find number of 'A's using 4 types of keys if (keystrokes <= 6) //if keystrokes are less than 7 return keystrokes; int result[keystrokes]; //store intermediate results for (int n=1; n<=6; n++) //upto 6 keystrokes, we need that number of keystrokes for max result[n-1] = n; for (int n=7; n<=keystrokes; n++){ //for 7th to higher result[n-1] = 0; //initially store 0 as result for (int breakPoint=n-3; breakPoint>=1; breakPoint--){ //find breakpoint to select, copy and paste int curr = (n-breakPoint-1)*result[breakPoint-1]; if (curr > result[n-1]) result[n-1] = curr; } } return result[keystrokes-1]; } int main(){ int keystrokes; cout << "Enter Number of keystrokes: "; cin >> keystrokes; cout << "Maximum Number of A's with "<<keystrokes << " keystrokes is: "<< keyNumbers(keystrokes)<<endl; }
입력
7
출력
Enter Number of keystrokes: Maximum Number of A's with 0 keystrokes is: 0