[백준] 5073번 삼각형과 세 변 Java 문제 풀이
2023. 3. 21. 18:13ㆍ알고리즘/백준
728x90
반응형
문제풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
interface Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
Map<Integer, Boolean> angle = new HashMap<Integer, Boolean>();
int[] len = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
while(len[0] != 0) {
angle.clear();
Arrays.sort(len);
angle.put(len[0], true);
angle.put(len[1], true);
angle.put(len[2], true);
if(len[2] < len[0] + len[1]) {
if (angle.size() == 1) {
System.out.println("Equilateral");
} else if (angle.size() == 2) {
System.out.println("Isosceles");
} else {
System.out.println("Scalene");
}
} else {
System.out.println("Invalid");
}
len = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
}
}
}
무조건 양의 정수값만 주어지므로 0이 있을 경우 바로 반복을 종료합니다.
변의 길이를 비교하여 삼각형인지 아닌지를 확인해야 하기 때문에 배열을 정렬하여 가장 끝 자리 값과 나머지 값을 비교했습니다.
삼각형의 길이를 Key 값으로 하는 HashMap을 생성했습니다.
HashMap은 Key의 중복을 허용하지 않기 때문에 같은 길이를 넣어주게 되면 새로 저장되지 않고 같은 Key에 덮어쓰기가 됩니다.
그래서 맵의 크기가 각각 1, 2, 3이면 Equilateral, Isosceles, Scalene를 출력하면 됩니다.
출처 : https://www.acmicpc.net/problem/5073
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 24262번 알고리즘 수업 - 알고리즘의 수행 시간 1 Java 문제 풀이 (0) | 2023.03.23 |
---|---|
[백준] 14215번 세 막대 Java 문제 풀이 (0) | 2023.03.21 |
[백준] 10101번 삼각형 외우기 Java 문제 풀이 (0) | 2023.03.21 |
[백준] 9063번 대지 Java 문제 풀이 (0) | 2023.03.21 |
[백준] 15894번 수학은 체육과목 입니다 Java 문제 풀이 (0) | 2023.03.21 |