프로그래밍_백준/C++
(C++) 백준 4153번 직각삼각형
공부하려구요
2023. 2. 26. 13:48
728x90
반응형
백준 4153번 문제는 직각삼각형 판단하기입니다!
여기서 주의할 점은 "0 0 0" 값이 입력되기 전까지 코드는 반복합니다!
또한, 값이 무작위로 써져 있으면 값을 정렬해야 합니다.
반복문은 while(true)로 설정하여 따로 반복문을 탈출하라는 명령어가 없으면 반복하게 합니다.
만약 "0 0 0"이 입력되면 break로 탈출합니다!
정렬되어 있지 않은 값을 정렬하고 이 값으로 직각삼각형인지 판단합니다!
#include<iostream>
#include<cmath>
#include<string>
#include<sstream>
using namespace std;
int main()
{
string str;
int a, tmp, i=0, b[3] = {0,};
stringstream stream;
while (true) {//반복문을 break를 만나기 전까지 반복합니다.
getline(cin, str);//공백을 포함하여 값을 받습니다.
if (str == "0 0 0") {
break;
}//만약 str에 "0 0 0"이 입력되면 반복문을 탈출합니다.
stream.str(str);//공백으로 값을 구분
while (stream >> a) {
b[i] = a;
i++;
}//구분한 값을 배열에 넣습니다.
i = 0;//i를 초기화합니다.
stream.clear();//stream에 있는 값을 초기화합니다.
for (int j=1; j < 3; j++) {
if (b[j - 1] > b[j]) {
tmp=b[j];
b[j] = b[j - 1];
b[j - 1] = tmp;
}
}//입력된 값을 정렬합니다.
if (pow(b[2], 2) == pow(b[1], 2) + pow(b[0], 2))
cout << "right" << endl;
else
cout << "wrong" << endl;
}//직각삼각형인지 확인합니다.
return 0;
}
728x90
반응형