일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 백준
- 그래프
- 다이나믹프로그래밍
- 백준 17451번
- SQL
- 그리디
- 머신러닝과 딥러닝
- 명품자바
- HUFS 모각코 캠프
- 백준 15787번
- 깃헙
- 백준 2512번
- 백준 18310번
- 알고리즘
- java_programming
- 모각코
- 백준 3085번
- 백준 16918번
- 백준 1331번
- ubuntu
- 다이나믹 프로그래밍
- 백준 1987
- SWEA 15612번
- react
- javascript
- 백준 1253번
- AWS
- Python
- MySQL
- 자바
Archives
- Today
- Total
차곡차곡
[BOJ/Python, Javascript] 백준 5073번 - 삼각형과 세 변 본문
백준 #5073 삼각형과 세 변
# 더러운 코드
while True:
triangle = list(map(int, input().split()))
if triangle[0] == 0 and triangle[1] == 0 and triangle[2] == 0:
break
max_x = -1
max_idx = -1
for i in range(3): # 가장 큰 변 구하기
if max_x < triangle[i]:
max_x = triangle[i]
max_idx = i
hap = 0 # 두 변의 합
for i in range(3):
if i == max_idx:
continue
else:
hap += triangle[i]
if max_x > hap: # 두 변의 길이가 가장 긴 변의 길이보다 길지 않은 경우
print('Invalid')
elif triangle[0] == triangle[1] and triangle[1] == triangle[2]: # 세 변의 길이가 모두 같은 경우
print('Equilateral')
elif triangle[0] == triangle[1] or triangle[0] == triangle[2] or triangle[1] == triangle[2]: # 두 변의 길이만 같은 경우
print('Isosceles')
else: # 세 변의 길이가 모두 다른 경우
print('Scalene')
# 개선된 코드
while True:
triangle = sorted(list(map(int, input().split())))
if triangle[0] == triangle[1] == triangle[2] == 0:
break
if triangle[0] + triangle[1] <= triangle[2]: # 두 변의 길이가 가장 긴 변의 길이보다 길지 않은 경우
print('Invalid')
elif triangle[0] == triangle[1] == triangle[2]: # 세 변의 길이가 모두 같은 경우
print('Equilateral')
elif triangle[0] == triangle[1] or triangle[1] == triangle[2] or triangle[2] == triangle[0]: # 두 변의 길이만 같은 경우
print('Isosceles')
else: # 세 변의 길이가 모두 다른 경우
print('Scalene')
단순 구현 문제
javascript Ver.
const data = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n");
data.pop(); // 0 0 0 값 제거
const result = []
for(let el of data) {
const input = el.split(' ').map(Number);
input.sort((a, b) => a - b);
if(input[0] + input[1] <= input[2]) {
result.push('Invalid');
continue;
}
const set = new Set(input); // 같은 값은 하나만 저장되는 집합의 성질 이용
if(set.size === 1) {
result.push('Equilateral');
} else if(set.size === 2) {
result.push('Isosceles');
} else {
result.push('Scalene');
}
}
console.log(result.join('\n'));
'CS > Algorithm' 카테고리의 다른 글
[codetree/python] 코드트리 - 아름다운 수 (0) | 2023.05.14 |
---|---|
[codetree/python] 코드트리 - k개 중에 1개를 n번 뽑기 (0) | 2023.05.14 |
[프로그래머스/Python] 성격 유형 검사하기 (0) | 2023.05.09 |
[프로그래머스/Python] 택배 배달과 수거하기 (0) | 2023.05.08 |
[프로그래머스/Python] 방문 길이 (0) | 2023.04.28 |
Comments