본문 바로가기
백준

[백준] 단계별로 풀어보기(단계:9,기본수학2,JAVA)4153번, 직각삼각형

by 열정적인 이찬형 2022. 1. 6.

문제 링크

4153번: 직각삼각형
 
www.acmicpc.net

주의사항

  • JAVA를 사용하여 프로그램을 사용하였습니다.
  • 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{ 	
	public static void main(String[] args){
    }
}

문제 설명


접근 방법

  • BufferedReader를 사용하여 입력 값을 받았습니다.
  • StringTokenizer를 통해서 띄어쓰기 기준으로 나누어 각자 숫자를 저장하였습니다.
  • 직각 삼각형인지 확인하는 함수 checkRightTriangle을 만들었습니다.
  • 직각 삼각형이 되기위한 조건은 밑변*2 + 높이*2 == 빗변*2 AND 밑변 + 높이 > 빗변 성립해야 합니다.
  • n1/n2/n3 숫자들이 빗변이 되었을 때의 경우의 수를 모두 적용하여 직각 삼각형인지 확인하였습니다.
  • 직각 삼각형이면 bw"right"를 저장하고 아니면 "wrong"를 저장하였습니다.
  • BufferedWriter를 통해 저장된 결과를 출력하였습니다.

결과 코드

import java.io.*;
import java.util.*;
public class Main{
	public static void main(String[] args) throws IOException{
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //BufferedReader를 통해 입력 값 받기
    	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
       	//BufferedWriter를 통해 결과 출력
    	StringTokenizer st;
	String text;
    	for(;;) {
    		text = br.readLine();
    		if(text.equals("0 0 0"))
    			break;
    		st = new StringTokenizer(text," ");		//띄어쓰기 기준 나누기
    		int n1 = Integer.parseInt(st.nextToken());	//숫자 저장하기
    		int n2 = Integer.parseInt(st.nextToken());
    		int n3 = Integer.parseInt(st.nextToken());
            	//직각 삼각형인지 확인
    		if(checkRightTriangle(n1,n2,n3) || checkRightTriangle(n1, n3, n2)	
    				|| checkRightTriangle(n2, n3, n1))
    			bw.write("right\n");	//bw에 저장
    		else
    			bw.write("wrong\n");
    	}
    	bw.flush();		//결과 출력
    	bw.close();
    	br.close();
	}
	public static boolean checkRightTriangle(int w,int h,int d) {	//직각 삼각형 확인 함수
		int temp = w*w + h*h;
		if(temp==(d*d) && w+h>d)
			return true;
		else
			return false;
	}
}

댓글