문제
캥거루 세 마리가 사막에서 놀고 있다. 사막에는 수직선이 하나 있고, 캥거루는 서로 다른 한 좌표 위에 있다.
한 번 움직일 때, 바깥쪽의 두 캥거루 중 한 마리가 다른 두 캥거루 사이의 정수 좌표로 점프한다. 한 좌표 위에 있는 캥거루가 두 마리 이상일 수는 없다.
캥거루는 최대 몇 번 움직일 수 있을까?
입력
첫째 줄에 세 캥거루의 초기 위치 A, B, C가 주어진다. (0 < A < B < C < 100)
출력
캥거루가 최대 몇 번 움직일 수 있는지 출력한다.
예제 입력 1
3 5 9 |
예제 출력 1
3 |
더보기
Solution
#include<stdio.h>
#include<stdlib.h>
int compare(const void *x,const void *y)
{
return *(int *)x>*(int *)y?1:*(int *)x==*(int *)y?0:-1;
}
int main(void)
{
int kangaroo[3], count=0;
for(int i=0;i<3;i++)
scanf("%d", &kangaroo[i]);
qsort((void *)kangaroo,(size_t)3,sizeof(int),compare);
while(kangaroo[1]-kangaroo[0]>1 || kangaroo[2]-kangaroo[1]>1)
{
if(kangaroo[1]-kangaroo[0]>kangaroo[2]-kangaroo[1])
{
kangaroo[2]=kangaroo[1];
kangaroo[1]--;
}
else
{
kangaroo[0]=kangaroo[1];
kangaroo[1]++;
}
count++;
}
printf("%d\n", count);
return 0;
}
728x90
'백준 알고리즘' 카테고리의 다른 글
<백준 알고리즘> 10815번: 숫자 카드 (0) | 2020.12.21 |
---|---|
<백준 알고리즘> 1075번: 나누기 (0) | 2020.12.21 |
<백준 알고리즘> 20365번: 블로그2 (0) | 2020.12.21 |
<백준 알고리즘> 20363번: 당근 키우기 (0) | 2020.12.21 |
<백준 알고리즘> 20362번: 유니대전 퀴즈쇼 (0) | 2020.12.21 |