풀이 

def solution(a, b, c):
    answer = 0

    if a != b and a != c and b != c:
        answer = a + b + c
    elif a == b == c :
        answer = (a + b + c) * (a**2 + b**2 + c**2 ) * (a**3 + b**3 + c**3 )
    else :
        answer = (a + b + c) * (a**2 + b**2 + c**2 )

    return answer

풀이 2

def solution(a, b, c):
    answer = a + b + c
    
    if a == b == c :
        answer = 27 * a * (a**2) * (a**3) # 값이 동일하므로 a로 치환하여 식 정리
    elif a == b or a == c or b == c :
        answer = (a + b + c) * (a**2 + b**2 + c**2 )
        
    return answer

풀이 3

def solution(a, b, c):
    check = len(set([a,b,c])) # set을 통해 집합을 만들고 중복 허용 특징을 이용해서 len으로 조건 판단
    
    if check == 1:
        return 27 * a * (a**2) * (a**3)
    elif check == 2:
        return (a+b+c)*(a**2+b**2+c**2)
    else:
        return (a+b+c)

 


set()

집합을 만들어 주는 함수 자료형

변경 가능한 자료형(리스트, 딕셔너리 등)을 집합으로 변환

중복을 허용하지 않고 순서가 없음 (인덱싱 불가)

# 괄호 안에 리스트 입력
s1 = set([1,2,3])
print(s1)

# result : {1,2,3}
# 문자열 입력
s2 = set("hello")
print(s2)

# result : {'o', 'h', 'l', 'e'}
# set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트 or 튜플로 변환
s1 = set([1,2,3])

l1 = list(s1)
print(l1)		# result : [1,2,3]
print(l1[0])		# result : 1

t1 = tuple(s1)
print(t1)		# result : (1,2,3)
print(t1[0])		# result : 1