반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [백준 알고리즘] 백준 5073번 삼각형과 세 변 자바(JAVA)

1) 문제번호 : 5073

 

2) 문제 출처

https://www.acmicpc.net/problem/5073

 

5073번: 삼각형과 세 변

각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.

www.acmicpc.net

 

2. 문제

삼각형의 세 변의 길이가 주어질 때 변의 길이에 따라 다음과 같이 정의한다.

  • Equilateral :  세 변의 길이가 모두 같은 경우
  • Isosceles : 두 변의 길이만 같은 경우
  • Scalene : 세 변의 길이가 모두 다른 경우

단 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우에는 "Invalid" 를 출력한다. 예를 들어 6, 3, 2가 이 경우에 해당한다. 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않으면 삼각형의 조건을 만족하지 못한다.

세 변의 길이가 주어질 때 위 정의에 따른 결과를 출력하시오.

 

3. 제약사항

 

4. 입력

각 줄에는 1,000을 넘지 않는 양의 정수 3개가 입력된다. 마지막 줄은 0 0 0이며 이 줄은 계산하지 않는다.

 

5. 출력

각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.

 

6. 풀이

- 조금 비효율적인 코드로 짰다. 그저 if문만 쓰면 되는 간단한 문제다.

 

7. 소스 코드

import java.io.*;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		while(true) {
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			
			int A = Integer.parseInt(st.nextToken());
			int B = Integer.parseInt(st.nextToken());
			int C = Integer.parseInt(st.nextToken());
			
			//A, B, C가 모두 0이면 종료
			if(A == 0 && B == 0 && C == 0) break;
			
			//삼각형 조건을 만족하지 못하는 경우
			int MAX = Math.max(Math.max(A, B), C);
			
			if(MAX == A) {
				int sum = B + C;
				
				if(A >= sum) {
					System.out.println("Invalid");
					continue;
				}
			}
			
			if(MAX == B) {
				int sum = A + C;
				
				if(B >= sum) {
					System.out.println("Invalid");
					continue;
				}
			}
			
			if(MAX == C) {
				int sum = A + B;
				
				if(C >= sum) {
					System.out.println("Invalid");
					continue;
				}
			}
			
			//세 수가 모두 다를 경우
			if(A != B && A != C && B != C) {
				System.out.println("Scalene");
				continue;
			}
			
			//A, B, C가 모두 같으면
			if(A == B && A == C && B == C) {
				System.out.println("Equilateral");
				continue;
			}
			
			//2개의 수만 같을 경우
			if(A == B || A == C || B == C) {
				System.out.println("Isosceles");
				continue;
			}
		}
	}
}

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기