삼각형의 세 변의 길이가 주어질 때 변의 길이에 따라 다음과 같이 정의한다.
단 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우에는 "Invalid"
를 출력한다. 예를 들어 6, 3, 2가 이 경우에 해당한다.
가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않으면 삼각형의 조건을 만족하지 못한다.
세 변의 길이가 주어질 때 위 정의에 따른 결과를 출력하시오.
각 줄에는 1,000을 넘지 않는 양의 정수 3개가 입력된다. 마지막 줄은 0 0 0이며 이 줄은 계산하지 않는다.
각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.
7 7 7
6 5 4
3 2 5
6 2 6
0 0 0
Equilateral
Scalene
Invalid
Isosceles
ICPC > Regionals > South Pacific > South Pacific Region > New Zealand Programming Contest > NZPC 2012 B번
-문제의 오타를 찾은 사람: corea, lety
-잘못된 번역을 찾은 사람: jh05013
-문제를 번역한 사람: john6014
-잘못된 데이터를 찾은 사람: kookmin20103324
import java.util.Scanner;
import javax.xml.validation.Validator;
public class Code5073 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
boolean isRoop=true;
int a=0,b=0,c=0;
while(isRoop) {
a=scanner.nextInt();
b=scanner.nextInt();
c=scanner.nextInt();
if(a==0 && b==0 && c==0) {
isRoop=false;
break;
}
if(isValid(a,b,c)){
if(a==b) {
if(a==c) {
System.out.println("Equilateral");
}
else {
System.out.println("Isosceles");
}
}
else if(a==c) {
System.out.println("Isosceles");
}
else if(b==c) {
System.out.println("Isosceles");
}
else {
System.out.println("Scalene");
}
}
else {// Not Valid
System.out.println("Invalid");
}
}
}
public static boolean isValid(int a, int b, int c) {
boolean isValid=true;
if(a<b) {
if(b<c) { //c is max
if(c>=a+b) {
isValid=false;
}
}
else { // b is max
if(b>=c+a) {
isValid=false;
}
}
}
else { // a>b
if(a<c) {//c is max
if(c>=a+b) {
isValid=false;
}
}
else { // a is max
if(a>=c+b) {
isValid=false;
}
}
}
return isValid;
}
}
이전 문제처럼 if
문을 사용해서 해결했다.
만약, 입력값이 0 0 0이면, while문을 종료시킨다.
isValid 함수를 만들어서 삼각형이 맞는지 아닌지를 테스트했다.
만약 유효하면, true를 반환하고 그렇지 않으면 false를 반환한다.
이후 내용은 이전 문제를 같다!