백준 10101번 바로가기
나의 풀이#
angle = []
for _ in range(3):
angle.append(int(input()))
if sum(angle) != 180:
print('Error')
else:
if len(set(angle)) == 1:
print('Equilateral')
elif len(set(angle)) == 2:
print('Isosceles')
else:
print('Scalene')
고수의 풀이#
print(['Error','Equilateral','Isosceles','Scalene'][(sum(c:=[*map(int,open(0))])==180)*len({*c})])
출처
CODE REVIEW#
- 위 코드 모두 논리는 같다. 1) 세각의 합이 180도인지 확인 2) 각 list를 set로 바꿔서 길이에 따라 정삼각형/이등변삼각형/일반삼각형 구분하기!
- 다만 고수의 풀이에서 볼 수 있듯이 if else 조건문을 압축해서 한 줄로 표현할 수도 있긴 하다.
print(['a','b','c','d'][@])
라고 할 때
- @에 들어가는게 False이면 0번째 요소, True이면 1번째 요소,
True*n
이면 n번째 요소를 출력해준다.
- 이를 이용하면 간단하게 식이 바뀐다.
- 굳이 필요없어보이기도 하지만 if else 조건문 분기가 많아지게 되면 써먹을만 할 것 같다.