문제

 

 

풀이

주어진 조건대로 풀이하면 된다.

#include <iostream>

using namespace std;

int main() {
	int x, y, z;
	int date = 1;

	cin >> x >> y >> z;

	date += (z - x) / (x - y);
	
	if ((z - x) % (x - y) != 0) date++;

	if (x >= z) cout << 1;
	else cout << date;

	return 0;
}

'백준 > 기하' 카테고리의 다른 글

2292번: 벌집 [C++]  (0) 2023.04.06
14215: 세 막대 / C++  (0) 2023.03.21
5073: 삼각형과 세 변 / C++  (0) 2023.03.21
10101: 삼각형 외우기 / C++  (0) 2023.03.21
9063: 대지 / C++  (0) 2023.03.21

문제

 

 

풀이

 n이 위치한 육각형이 중앙으로부터 몇 번째 육각형인지를 구하면 된다.

 각 육각형의 마지막 수는 각각 1, 7, 19, 37, 61로 증가값이 6의 배수로 증가함을 알 수 있고 이를 통해 n에 도달하려면 최소 몇 번 이동해야하는지 알 수 있다.

#include <iostream>

using namespace std;

int main() {	
	int n;
	int cnt = 0, sum = 0;

	cin >> n;

	for (int i = 0; sum < n; i++) {
		if (i == 0) sum += 1;
		else sum += 6 * i;

		cnt++;
	}

	cout << cnt;

	return 0;
}

 

'백준 > 기하' 카테고리의 다른 글

2869번: 달팽이는 올라가고 싶다 [C++]  (0) 2023.04.06
14215: 세 막대 / C++  (0) 2023.03.21
5073: 삼각형과 세 변 / C++  (0) 2023.03.21
10101: 삼각형 외우기 / C++  (0) 2023.03.21
9063: 대지 / C++  (0) 2023.03.21

문제 

 

풀이

삼각형의 조건 중 가장 긴 변의 길이가 다른 두 변의 합보다 크거나 같으면 안된다는 것을 이용해 세 수를 더하는 것 만으로 답이 나오는지를 판별하고 만약 크거나 같다면 가능한 가장 긴 변의 길이는 다른 두 변의 합 - 1임을 이용해 답을 출력하면 된다.

#include <iostream>
#include <algorithm>

using namespace std;

int main() {
	int x, y, z;
	int sides[3];

	cin >> sides[0] >> sides[1] >> sides[2];

	sort(sides, sides + 3);

	if (sides[2] < sides[0] + sides[1]) cout << sides[0] + sides[1] + sides[2];
	else cout << 2 * (sides[0] + sides[1]) - 1;

	return 0;
}

'백준 > 기하' 카테고리의 다른 글

2869번: 달팽이는 올라가고 싶다 [C++]  (0) 2023.04.06
2292번: 벌집 [C++]  (0) 2023.04.06
5073: 삼각형과 세 변 / C++  (0) 2023.03.21
10101: 삼각형 외우기 / C++  (0) 2023.03.21
9063: 대지 / C++  (0) 2023.03.21

문제 

 

풀이

일단 주어진 케이스가 삼각형의 조건을 만족하는지 검사하고 이후 위 조건에 따라 출력한다.

#include <iostream>
#include <algorithm>

using namespace std;

int main() {
	int x, y, z;
	
	while (1) {
		cin >> x >> y >> z;

		if (x == 0 && y == 0 && z == 0)
			break;

		int sides[3] = { x,y,z };

		sort(sides, sides + 3);

		if (sides[2] >= sides[0] + sides[1]) {
			cout << "Invalid\n";
			continue;
		}

		if (x == y && x == z && y == z) {
			cout << "Equilateral\n";
			continue;
		}

		if (x == y || x == z || y == z) {
			cout << "Isosceles\n";
			continue;
		}

		cout << "Scalene\n";
	}

	return 0;
}

'백준 > 기하' 카테고리의 다른 글

2292번: 벌집 [C++]  (0) 2023.04.06
14215: 세 막대 / C++  (0) 2023.03.21
10101: 삼각형 외우기 / C++  (0) 2023.03.21
9063: 대지 / C++  (0) 2023.03.21
15894: 수학은 체육과목 입니다 / C++  (0) 2023.03.21

문제

 

풀이

#include <iostream>

using namespace std;

int main() {
	int x, y, z;
	int sum = 0;

	cin >> x >> y >> z;

	sum = x + y + z;
	
	if (sum == 180) {
		if (x == 60 && y == 60 && z == 60) 
			cout << "Equilateral";
		else if (x == y || x == z || y == z)
			cout << "Isosceles";
		else
			cout << "Scalene";
	}
	else
		cout << "Error";

	return 0;
}

'백준 > 기하' 카테고리의 다른 글

14215: 세 막대 / C++  (0) 2023.03.21
5073: 삼각형과 세 변 / C++  (0) 2023.03.21
9063: 대지 / C++  (0) 2023.03.21
15894: 수학은 체육과목 입니다 / C++  (0) 2023.03.21
3009: 네 번째 점 / C++  (0) 2023.03.21

문제

 

풀이

입력된 케이스에서 최대, 최소에 해당하는 x좌표와 y좌표를 구하면 되는 간단한 비교 문제다. 

#include <iostream>

using namespace std;

int main() {
	int n, x, y;
	long long minX = 10000, minY = 10000;
	long long maxX = -10000, maxY = -10000;

	cin >> n;

	if (n < 2) {
		cout << 0;
		return 0;
	}

	for (int i = 0; i < n; i++) {
		cin >> x >> y;

		if (x > maxX) maxX = x;
		if (y > maxY) maxY = y;

		if (x < minX) minX = x;
		if (y < minY) minY = y;
	}

	cout << (maxX - minX) * (maxY - minY);

	return 0;
}

'백준 > 기하' 카테고리의 다른 글

5073: 삼각형과 세 변 / C++  (0) 2023.03.21
10101: 삼각형 외우기 / C++  (0) 2023.03.21
15894: 수학은 체육과목 입니다 / C++  (0) 2023.03.21
3009: 네 번째 점 / C++  (0) 2023.03.21
1085: 직사각형에서 탈출 / C++  (0) 2023.03.21

문제

 

풀이

n = 1이면 4, n = 2면 8, n = 3이면 12..... n = n이면 n * 4의 규칙을 가진다.

#include <iostream>

using namespace std;

int main() {
	long long n;

	cin >> n;

	if (n == 1) {
		cout << "4";
	}
	else {
		cout << 4 * n;
	}

	return 0;
}

'백준 > 기하' 카테고리의 다른 글

10101: 삼각형 외우기 / C++  (0) 2023.03.21
9063: 대지 / C++  (0) 2023.03.21
3009: 네 번째 점 / C++  (0) 2023.03.21
1085: 직사각형에서 탈출 / C++  (0) 2023.03.21
27323: 직사각형 / C++  (0) 2023.03.20

문제

 

풀이

 직사각형이 되려면 같은 x좌표와 y좌표가 두 쌍씩 있어야하므로 입력된 x좌표 3개와 y좌표 3개를 서로 비교해서 1개만 존재하는 x좌표와 y좌표를 출력하면 된다.

 예를 들어 (10,20), (10, 10), (30, 20)이 주어질 때 x[3] = { 10, 10, 30 }, y[3] = { 20, 10, 20 }이므로 직사각형을 이루기 위한 네 번째 점은 (30, 10)이 된다.

 

#include <iostream>

using namespace std;

int main() {
	int x[3], y[3];

	for (int i = 0; i < 3; i++)
		cin >> x[i] >> y[i];

	if (x[0] == x[1]) cout << x[2] << " ";
	else if (x[0] == x[2]) cout << x[1] << " ";
	else cout << x[0] << " ";

	if (y[0] == y[1]) cout << y[2];
	else if (y[0] == y[2]) cout << y[1];
	else cout << y[0];

	return 0;
}

'백준 > 기하' 카테고리의 다른 글

10101: 삼각형 외우기 / C++  (0) 2023.03.21
9063: 대지 / C++  (0) 2023.03.21
15894: 수학은 체육과목 입니다 / C++  (0) 2023.03.21
1085: 직사각형에서 탈출 / C++  (0) 2023.03.21
27323: 직사각형 / C++  (0) 2023.03.20

+ Recent posts