문제: https://www.acmicpc.net/problem/5073
1. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[3];
while(true) {
String answer = "Scalene";
int maxValue = 0;
int index = 0;
for(int i = 0; i < 3; i++) {
arr[i] = sc.nextInt();
if(maxValue < arr[i]) {
index = i;
maxValue = arr[i];
}
int cnt = 0;
for(int j = 0; j < i; j++) {
if(arr[i] == arr[j])
cnt++;
}
if(cnt == 1)
answer = "Isosceles";
if(cnt == 2)
answer = "Equilateral";
}
if(arr[0] == 0 && arr[1] == 0 && arr[2] == 0) break;
int sum = 0;
for(int i = 0; i < 3; i++) {
if(index != i)
sum += arr[i];
}
if(sum > maxValue)
System.out.println(answer);
else
System.out.println("Invalid");
}
}
}
2. 설명
String answer = "Scalene";
int maxValue = 0;
int index = 0;
for(int i = 0; i < 3; i++) {
arr[i] = sc.nextInt();
if(maxValue < arr[i]) {
index = i;
maxValue = arr[i];
}
int cnt = 0;
for(int j = 0; j < i; j++) {
if(arr[i] == arr[j])
cnt++;
}
if(cnt == 1)
answer = "Isosceles";
if(cnt == 2)
answer = "Equilateral";
}
for문을 통해서 삼각형의 변에 대한 입력과 비교, 그리고 가장 큰 값과 가장 큰 값이 저장되는 인덱스 값을 추출합니다.
if(arr[0] == 0 && arr[1] == 0 && arr[2] == 0) break;
삼각형의 변이 전부 0이라면 중단합니다.
int sum = 0;
for(int i = 0; i < 3; i++) {
if(index != i)
sum += arr[i];
}
가장 큰 값을 제외한 나머지 값들의 합을 구합니다.
if(sum > maxValue)
System.out.println(answer);
else
System.out.println("Invalid");
나머지 변들의 합이 가장 큰 값보다 크다면 answer를 출력하고 아니라면 Invalid를 출력합니다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 - 19532번: 수학은 비대면강의입니다 [Java] (0) | 2023.09.13 |
---|---|
백준 알고리즘 - 14215번: 세 막대 [Java] (0) | 2023.09.12 |
백준 알고리즘 - 10101번: 삼각형 외우기 [Java] (0) | 2023.09.10 |
백준 알고리즘 - 9063번: 대지 [Java] (0) | 2023.09.09 |
백준 알고리즘 - 15894번: 수학은 체육과목 입니다 [Java] (0) | 2023.09.08 |