문제

현수는 송아지를 잃어버렸다. 다행히 송아지에는 위치추적기가 달려있다. 현수의 위치와 송아 지의 위치가 직선상의 좌표 점으로 주어지면 현수는 현재 위치에서 송아지의 위치까지 다음과 같은 방법으로 이동한다.
현수는 스카이 콩콩을 타고 가는데 한 번의 점프로 앞으로 1, 뒤로 1, 앞으로 5를 이동할 수 있다. 최소 몇 번의 점프로 현수가 송아지의 위치까지 갈 수 있는지 구하는 프로그램을 작성하세요.

입력설명

첫 번째 줄에 현수의 위치 S와 송아지의 위치 E가 주어진다. 직선의 좌표 점은 1부터 10,000 까지이다.

출력설명

점프의 최소횟수를 구한다.

입력예제

5 14

출력예제

3


#include <stdio.h>
#include <vector>
#include <queue>
using namespace std;
int check[10001], d[3]={1, -1, 5};

int main(){
	//freopen("input.txt", "rt", stdin);
	int start, end, position, x, i;
	queue<int> Q;
	scanf("%d %d", &start, &end);
	check[start]=1;
	Q.push(start);
	while(!Q.empty()){
		x = Q.front();
		Q.pop();
		for(i=0; i<3; i++){
			position = x + d[i];
			if(position<=0 || position>10000){
				continue;
			}
			if(position == end) {
				printf("%d", check[x]);
				return 0; 
			}
			if(check[position] == 0){
				check[position] = check[x]+1;
				Q.push(position);
			}
		}
	}
	
	return 0;
}

+ Recent posts