[코딩테스트] 백준 #4153 문제 풀이

재오·2022년 9월 24일
1

코딩테스트

목록 보기
5/46
post-thumbnail

이 문제에서 짚고 넘어가야 할 키워드

  • return 0을 하게 되면 프로그램이 종료된다.
  • 가장 긴 변을 가지는 값은 끝으로 몰아 넣는다.

처음에는 배열을 만들어서 3개의 숫자의 크기를 하나씩 비교해가면서 가장 큰 수를 찾아내는 방법을 생각했었지만 그것은 쓸데없이 코드가 길어지는 단점을 가지고 있다. 그래서 생각해낸 것은 swap 함수를 생성해서 값이 가장 큰 값을 z라는 변수에 고정해두는 것이다. 그리고 0 0 0을 입력하게 된다면 프로그램이 종료되야 하기 때문에 if문을 사용해 0 0 0을 입력받으면 return 0을 해주는 것이다.

최종 코드는 다음과 같다.

최종 코드

#include <iostream>

using namespace std;

int main()
{
    while(true)
    {
        int x, y, z;
        int temp = 0;
        
        cin >> x >> y >> z;
        
        if(x == 0 && y == 0 && z == 0) return 0;
        
        if(x > y)
        {
            temp = x;
            x = y;
            y = temp;
        }
        
        if(y > z)
        {
            temp = y;
            y = z;
            z = temp;
        }
        
        if(z*z == x*x + y*y) cout << "right" << endl;
        else cout << "wrong" << endl;
    }
}
profile
블로그 이전했습니다

0개의 댓글