주어진 이동량 중 하나를 골라 양의 방향으로 이동해요. 같은 이동량을 몇 번이든 다시 사용할 수 있어요. 이동량을 더해 target을 정확히 만드는 최소 이동 횟수를 구해요.
int solution(vector<int> steps, int target)의 잘못된 한 줄을 고쳐 주세요. target은 0100, 이동량 수는 15, 각 이동량은 1~20이에요. 이동량이 중복될 수 있으며 중복은 사용 횟수를 제한하지 않아요. target=0이면 0, 만들 수 없으면 -1을 반환해요. 반환형은 int예요.
예시 1: steps = {2, 3}, target = 6 → 2. 3을 두 번 사용해요.
예시 2: steps = {2, 3}, target = 7 → 3. 2+2+3으로 세 번 사용해요.
실행 입력은 target N과 다음 줄의 이동량 N개예요. main은 매개변수를 구성하는 하네스이며 최소 횟수 또는 -1을 출력해요.
예시 입력
6 2 2 3
예상 결과
2
예시 입력
7 2 2 3
예상 결과
3
핵심 개념
dp-1d: 이전 상태의 의미를 고정하고 현재 결과를 계산해요.loops: 순회 순서가 상태에 미치는 영향을 확인해요.array-1d: 항목 번호와 상태 인덱스를 구분해요.