본문 바로가기

Algorithm_BOJ(백준)/그리디(Greedy Algorithm)

[백준 11034 c++] 캥거루 세마리2

728x90
반응형

문제 링크

www.acmicpc.net/problem/11034

 

11034번: 캥거루 세마리2

여러개의 테스트 케이스로 이루어져 있으며, 세 캥거루의 초기 위치 A, B, C가 주어진다. (0 < A < B < C < 100)

www.acmicpc.net

 

문제 접근


// 접근: 최대,최소 => 그리디?




 

문제 풀이

// 풀이: 한 캥거루의 최대 이동 횟수는 두 캥거루 사이의 거리-1 과 같다

 

주의

// 주의: 테스트 케이스의 갯수가 지정이 안되어있는데 이를 scanf("%d", &kang[0]) != EOF 라 해야함,scanf자체를 비교해야 함

 

개념


// 개념: EOF(end of file) 로 -1 값을 가진다

소스코드

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio> // c 문법 헤더파일
#include<string> // c++ 문자열 클래스
#include<vector> // 동적배열 라이브러리
#include<stack>
#include<queue>
#include<algorithm>  // sort와 unique 사용
#include<cmath> // 제곱이나 루트함수 사용
#include<cstring> // memset 함수
#include <set>

// [백준 11034 c++] 캥거루 세마리2 
// 접근: 최대,최소 => 그리디?
// 풀이: 한 캥거루의 최대 이동 횟수는 두 캥거루 사이의 거리-1 과 같다
// 주의: 테스트 케이스의 갯수가 지정이 안되어있는데 이를 scanf("%d", &kang[0]) != EOF 라 해야함,scanf자체를 비교해야 함
// 개념: EOF(end of file) 로 -1 값을 가진다
// 개념 : 
using namespace std; // cin,cout 편하게 사용 라이브러리

int n;

int main()
{
	// IO 속도 향상
	//ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int dis[2];
	int kang[3];
	
	while (1)
	{
		//cin >> kang[0];
		if (scanf("%d", &kang[0]) != EOF)
		{
			for (int i = 1; i < 3; i++)
			{
				cin >> kang[i];
			}
		}
		else
		{
			return 0;
		}
		sort(kang, kang + 3);
		dis[0] = kang[1] - kang[0];
		dis[1] = kang[2] - kang[1];
		sort(dis, dis + 2);
		printf("%d ", dis[1] - 1);
		//cout << dis[1]-1 << " ";
	}
	 return 0;
}



반응형