1463번: 1로 만들기

2579번: 계단 오르기

(비슷한 문제!)

max, min stl

#include <algorithm> 헤더파일에 min, max 함수 있음

사용법

int min(int a,int b){

return a?b : a<b;

}

코드

#include <stdio.h>
#include <stdlib.h>
#include <algorithm>

using namespace std;
int arr[1000001];

int main(){
	int num;
	scanf("%d",&num);	

	for(int i=2;i<=num;i++){ //i는 2부터 시작 

		arr[i]= arr[i-1]+1; // 바로 앞 연산 수 대입  
		if(i%3==0) //3으로 나누어떨어지는 수만 사용 
			arr[i]=min(arr[i/3]+1,arr[i]);
		if(i%2==0) //2로 떨어지는 수만 사용 
			arr[i] = min(arr[i/2]+1, arr[i]);
	}
	
	printf("%d",arr[num]);

}

1003번: 피보나치 함수