[๋ฐฑ์ค] 1925๋ฒ - ์ผ๊ฐํ (C++)
1925๋ฒ: ์ผ๊ฐํ
ํ๋ฉด์์ ์ธ ๊ฐ์ ์ ์ด ์ฃผ์ด์ง๋ฉด, ๊ทธ ์ธ ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ์ผ๊ฐํ์ ์ ์ผํ๊ฒ ๊ฒฐ์ ๋๋ค. ๋๋, ์ผ๊ฐํ์ด ์ด๋ฃจ์ด์ง์ง ์๊ธฐ๋ ํ๋ค. ์ธ ์ ์ ์ขํ๊ฐ ์ฃผ์ด์ก์ ๋ ๋ค์์ ๋ฐ๋ผ ์ด ์ผ๊ฐํ์ ์ข ๋ฅ๋ฅผ
www.acmicpc.net
๋ฌธ์
ํ๋ฉด์์ ์ธ ๊ฐ์ ์ ์ด ์ฃผ์ด์ง๋ฉด, ๊ทธ ์ธ ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ์ผ๊ฐํ์ ์ ์ผํ๊ฒ ๊ฒฐ์ ๋๋ค. ๋๋, ์ผ๊ฐํ์ด ์ด๋ฃจ์ด์ง์ง ์๊ธฐ๋ ํ๋ค. ์ธ ์ ์ ์ขํ๊ฐ ์ฃผ์ด์ก์ ๋ ๋ค์์ ๋ฐ๋ผ ์ด ์ผ๊ฐํ์ ์ข ๋ฅ๋ฅผ ํ๋จํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- ์ธ ์ ์ด ์ผ์ง์ ์์ ์์ผ๋ฉด - ‘์ผ๊ฐํ์ด ์๋’ ์ถ๋ ฅํ ๋๋ X
- ์ธ ๋ณ์ ๊ธธ์ด๊ฐ ๊ฐ์ผ๋ฉด - ‘์ ์ผ๊ฐํ’ ์ถ๋ ฅํ ๋๋ JungTriangle
- ๋ ๋ณ์ ๊ธธ์ด๊ฐ ๊ฐ์ผ๋ฉด
- ๊ฐ์ฅ ํฐ ๊ฐ์ด 90°๋ณด๋ค ํฌ๋ฉด - ‘๋๊ฐ์ด๋ฑ๋ณ์ผ๊ฐํ’ ์ถ๋ ฅํ ๋๋ Dunkak2Triangle
- ๊ฐ์ฅ ํฐ ๊ฐ์ด 90°์ด๋ฉด - ‘์ง๊ฐ์ด๋ฑ๋ณ์ผ๊ฐํ’ ์ถ๋ ฅํ ๋๋ Jikkak2Triangle
- ๊ฐ์ฅ ํฐ ๊ฐ์ด 90°๋ณด๋ค ์์ผ๋ฉด - ‘์๊ฐ์ด๋ฑ๋ณ์ผ๊ฐํ’ ์ถ๋ ฅํ ๋๋ Yeahkak2Triangle
- ์ธ ๋ณ์ ๊ธธ์ด๊ฐ ๋ชจ๋ ๋ค๋ฅด๋ฉด
- ๊ฐ์ฅ ํฐ ๊ฐ์ด 90°๋ณด๋ค ํฌ๋ฉด - ‘๋๊ฐ์ผ๊ฐํ’ ์ถํํ ๋๋ DunkakTriangle
- ๊ฐ์ฅ ํฐ ๊ฐ์ด 90°์ด๋ฉด - ‘์ง๊ฐ์ผ๊ฐํ’ ์ถ๋ ฅํ ๋๋ JikkakTriangle
- ๊ฐ์ฅ ํฐ ๊ฐ์ด 90°๋ณด๋ค ์์ผ๋ฉด - ‘์๊ฐ์ผ๊ฐํ’ ์ถ๋ ฅํ ๋๋ YeahkakTriangle
์ ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ ์ ์งธ ์ค๊น์ง ์ผ๊ฐํ์ ์ด๋ฃจ๋ ์ ์ x์ขํ์ y์ขํ๊ฐ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ์ ๋ ฅ๋๋ ์๋ ์ ๋๊ฐ์ด 10,000์ ๋์ง ์๋ ์ ์์ด๋ค. ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ์ธ ์ขํ๋ ์ค๋ณต๋์ง ์๋๋ค.
์ถ๋ ฅ
์์ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ผ๊ฐํ์ ์ข ๋ฅ๊ฐ ๋ฌด์์ธ์ง ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
0 0
-3 -3
-3 0
์์ ์ถ๋ ฅ 1
Jikkak2Triangle
์์ ์ ๋ ฅ 2
1 1
0 0
2 100
์์ ์ถ๋ ฅ 2
DunkakTriangle
์์ ์ ๋ ฅ 3
10000 10000
2580 2580
-10000 -10000
์์ ์ถ๋ ฅ 3
X
ํ์ด๊ณผ์
๋ฌธ์ ์์ฒด๊ฐ ์ํ์ ํผํ๊ณ ๋ผ์ค ์ ๋ฆฌ๊ฐ ๊ธฐ๋ฐ์ด ๋๋ ๋ฌธ์ ์ด๋ค๋ณด๋ ๋ฌธ์ ๋ฅผ ์์ํ๊ธฐ์ ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ง๋ฅผ ํด์ผํ๋ ์ํ์ ์ธ ์ง์์ด ํ์ํ ๋ฌธ์ ์๋ค.
๋ฌธ์ ์์ ์ ๋ ฅ๊ฐ์ด 3๊ฐ์ ์ ์ x, y๋ก ์ฃผ์ด์ง๊ธฐ๋๋ฌธ์ ์ ๊ณผ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๊ณต์์ ์๊ณ ์์ด์ผํ๊ณ
์ ์ผ๊ฐํ, ์ผ๊ฐํ(๋ถ๊ฐ), ์๊ฐ์ผ๊ฐํ, ์ง๊ฐ์ผ๊ฐํ, ๋๊ฐ์ผ๊ฐํ ์ด 5๊ฐ์ง์ ์กฐ๊ฑด๋ค์ ํ๋ณํ ์ค ์์์ผํ์๋ค.
- ์ ์ผ๊ฐํ ์ ๊ณผ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ ๊ณต์์ผ๋ก ๊ตฌํ a, b, c์ ๊ธธ์ด๊ฐ ๋ชจ๋ ๊ฐ์ผ๋ฉด ์ ์ผ๊ฐํ์ผ๋ก ํ๋ณํ ์ ์๋ค.
- ์ผ๊ฐํ(๋ถ๊ฐ) ๊ฐ์ฅ ๊ธด c์ ๊ธธ์ด๊ฐ a + b ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ผ๊ฐํ์ ์ฑ๋ฆฝ์ด ๋ถ๊ฐ๋ฅํ๋ค (c ≥ a + b)
- ์๊ฐ์ผ๊ฐํ c^2 ๋ณด๋ค a^2 + b^2 ์ด ๋ ํฌ๋ค๋ฉด ์๊ฐ์ผ๊ฐํ์ด๋ค. (c^2 < a^2 + b^2)
- ์ง๊ฐ์ผ๊ฐํ c^2 ๋ณด๋ค a^2 + b^2 ์ด ๊ฐ๋ค๋ฉด ์ง๊ฐ์ผ๊ฐํ์ด๋ค. (c^2 = a^2 + b^2)
- ๋๊ฐ์ผ๊ฐํ c^2 ๋ณด๋ค a^2 + b^2 ์ด ๋ ์๋ค๋ฉด ๋๊ฐ์ผ๊ฐํ์ด๋ค. (c^2 > a^2 + b^2)
์์ ๊ฐ์ ์กฐ๊ฑด๋ค์ ์์งํ๊ณ ์ฝ๋์ ๋์ ํ๋ฉด ๋๋ ํ์์ ๋ฌธ์ ์๋ค.
code
#include <iostream>
#include <stdlib.h>
#include <math.h>
struct Point
{
int x;
int y;
};
int triangle(double c, double a, double b)
{
if (std::sqrt(c) >= (std::sqrt(a) + std::sqrt(b))) {
std::cout << "X";
return (1);
}
if (c > (a + b)) std::cout << "Dunkak";
if (c == (a + b)) std::cout << "Jikkak";
if (c < (a + b)) std::cout << "Yeahkak";
return (0);
}
int main(void)
{
struct Point p1, p2, p3;
double a, b, c;
int n = 0;
std::cin >> p1.x >> p1.y;
std::cin >> p2.x >> p2.y;
std::cin >> p3.x >> p3.y;
a = pow(p2.x - p1.x, 2) + pow(p2.y - p1.y, 2);
b = pow(p3.x - p2.x, 2) + pow(p3.y - p2.y, 2);
c = pow(p3.x - p1.x, 2) + pow(p3.y - p1.y, 2);
if (a >= b && a >= c) n = triangle(a, b, c);
else if (b >= a && b >= c) n = triangle(b, c, a);
else if (c >= a && c >= b) n = triangle(c, b, a);
if (!n)
if (a == b || b == c || c == a) std::cout << "2";
if (!n && a == b && b == c && c == a) std::cout << "Jung";
if (!n) std::cout << "Triangle";
return(0);
}
ํ๊ธฐ
์ต๋ํ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์งค๋ ค๊ณ ํ๋ค๋ณด๋ ์คํ๋ ค ๋ฐ๋ก๋ค์ด ๋ง์ด ๋์์ ๋๋ฒ๊น ์ด ๋ ํ๋ค์๋ ๊ฑฐ ๊ฐ๋ค.
์กฐ๊ธ ๋ ์ฒ ์ ํ ๊ตฌ์ํด์ ๋ฌธ์ ์ ์ ๊ทผํ ์ ์๋๋ก ํด์ผํ ๊ฑฐ ๊ฐ๋ค.