문제 |
4153번: 직각삼각형
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
www.acmicpc.net
코드 |
#include <iostream>
#include <array>
#include <algorithm>
using namespace std;
array<int, 3> arr;
bool isRightTriangle() {
for (int &i: arr) {
cin >> i;
if (i == 0) return false;
}
sort(arr.begin(), arr.end());
auto [a, b, c] = arr;
cout << ((a * a + b * b == c * c) ? "right" : "wrong") << '\n';
return true;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
while (isRightTriangle());
return 0;
}
설명 |
0을 입력받을 때까지 세 정수를 입력받은 후 정렬하여 직각삼각형인지 판별한다.
'auto [ 변수 ] = (배열, 어레이, 벡터, 페어, 튜플, 구조체 등)' 식의 문법(Structured binding declaration)은 C++17부터 가능하다.
'PS > BOJ' 카테고리의 다른 글
[C++] BOJ (백준) 7568 : 덩치 (0) | 2023.03.01 |
---|---|
[C++] BOJ (백준) 4949 : 균형잡힌 세상 (0) | 2023.03.01 |
[C++] BOJ (백준) 2869 : 달팽이는 올라가고 싶다 (0) | 2023.03.01 |
[C++] BOJ (백준) 2839 : 설탕 배달 (0) | 2023.03.01 |
[C++] BOJ (백준) 2805 : 나무 자르기 (0) | 2023.03.01 |