백준 10101번 - 삼각형 외우기
백준 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 조건문 분기가 많아지게 되면 써먹을만 할 것 같다.