안경잡이 구루루
백준 10101 (삼각형 외우기) [Python/파이썬] 본문
https://www.acmicpc.net/problem/10101
10101번: 삼각형 외우기
문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다.
www.acmicpc.net
![](https://blog.kakaocdn.net/dn/4SWqI/btssVIjnFNO/UdLAGPqDeE4KaR3xAjlb2K/img.png)
나:
angles=[]
totall =0
for i in range(3):
angle = int(input())
totall +=angle
angles.append(angle)
no_dup = set(angles)
if totall != 180:
print('Error')
else:
if len(no_dup) ==3:
print('Scalene')
if len(no_dup) ==2:
print('Isosceles')
if len(no_dup) ==1:
print('Equilateral')
완성된 코드는 위와 같다,
(1)
angles=[]
totall =0
입력받은 값을 저장한 angles 라는 리스트 변수를 선언
삼각형 내각의 총 합인 180 도 맞는지 확인하기 위해 totall 변수를 선언해 값을 받고자 함
(2)
for i in range(3):
angle = int(input())
totall +=angle
angles.append(angle)
삼각형의 각은 총 3개라서 반복문을 총 3번 반복한다.
이때 받 각을 받는 변수 angle은 정수형으로 입력받고 입력 받을 때 마다 totall 에 더해진다.
또한 입력받은 angle은 삼각형 모든 각들을 가질 angles 리스트에 넣어 나중에 활용하고자 했다.
(3)
no_dup = set(angles)
if totall != 180:
print('Error')
else:
if len(no_dup) ==3:
print('Scalene')
if len(no_dup) ==2:
print('Isosceles')
if len(no_dup) ==1:
print('Equilateral')
중복 여부를 확인하기 위해 set 함수를 이용해 그 결과를 no_dup 라는 변수에 넣음
조건문 if 절을 이용해 앞에서 180가 아닐 때 와 맞을 때로 크게 두 경우로 분리했다.
set() 함수는 중복의 경우 그 중복되는 값들 중 하나가 사라지는데 이를 이용해 그 값들을 가진 변수의 길이를 len() 함수를 이용해 경우에 따라 Equilateral, Isosceles, Scalene 로 표현
이때 총 내각의 합이 180를 만족하는 경우 세각이 모두 같다면 그 모든 각들은 60를 만족할 수 밖에 없음에 주의하면 좋다
다른사람:
a = int(input())
b = int(input())
c = int(input())
if a + b + c != 180:
print("Error")
elif a == b == c:
print("Equilateral")
elif a == b or a == c or b == c:
print("Isosceles")
else:
print("Scalene")
완성된 코드는 위와 같다,
주목할 점은 반복문 사용없고 변수를 최소한으로 해서 나 또한 생각해 볼만한 코드라서 가져오게 되었다.
(1) 반복문, 리스트 사용 없이 어짜피 삼각형 각이 총 3개라서 각각을 a,b,c 로 받아 활용하기 편하게 함
(2) 내가 만든 totall 값은 앞서 받았던 3개의 입력값들을 더해주는 식으로 간단히 표현
(3) 나와 마찬가지로 180를 만족한 상태면 a==b==c 는 모두가 60도인 경우만 존재할 수 밖에 없다는 사실에 주목해 elif 로 코드 구현
'파이썬(Python) > 문제풀이(백준,BaekJoon)' 카테고리의 다른 글
백준 5585 (거스름돈) [Python/파이썬] [Greedy/그리디] (0) | 2023.09.16 |
---|---|
백준 5073 (삼각형과 세 변) [Python/파이썬] (0) | 2023.09.10 |
백준 9063 (대지) [Python/파이썬] (0) | 2023.09.02 |
백준 2720 (세탁소 사장 동혁) [Python/파이썬] (0) | 2023.09.01 |
백준 10798 (세로읽기) [Python/파이썬] (0) | 2023.08.31 |