- 문제
- 풀이
#include <iostream>
int main()
{
int a = 0, b = 0, c = 0, temp = 0;
while (true)
{
std::cin >> a >> b >> c;
// 모든 값이 0으로 입력될 경우 반복문을 종료한다.
if (a == 0 && b == 0 && c == 0)
{
break;
}
// 어떤 값이 가장 큰지에 대한 조건이 명시되어 있지 않으므로 임의로 순서를 맞춰줘야 한다.
if (a > c)
{
temp = c;
c = a;
a = temp;
}
else if (b > c)
{
temp = c;
c = b;
b = temp;
}
// a의 제곱과 b의 제곱 값이 c의 제곱과 같은 경우에만 right를 출력한다.
if (((a * a) + (b * b)) != (c * c))
{
std::cout << "wrong" << '\n';
}
else
{
std::cout << "right" << '\n';
}
}
return 0;
}
- 메모
문제를 잘 읽어보면 입력되는 수 중에 어떤 값이 가장 큰지에 대한 조건이 명시되어 있지 않다.
입력 예제를 보면 c가 a, b보다 큰 경우만 입력되고 있어서 c가 가장 큰 값이 들어올거라고 착각하고 1차 시도를 했는데 자세히 읽어보니 이런 함정이 있었다... 문제를 주의해서 읽도록 해야겠다.
'코딩테스트' 카테고리의 다른 글
★ [백준/1978번/C++] 소수 찾기 (0) | 2024.05.27 |
---|---|
★ [백준/30802번/C++] 웰컴 키트 (0) | 2024.05.26 |
[백준/10809번/C++] 알파벳 찾기 (0) | 2024.05.24 |
[백준/8958번/C++] OX퀴즈 (0) | 2024.05.23 |
[백준/3052번/C++] 나머지 (0) | 2024.05.22 |