본문 바로가기

알고리즘/python

[python/파이썬] 백준 21312 홀짝 칵테일

반응형

문제

정진이는 특별한 음료를 가지고 있다. 음료들은 정수로 표현되는 고유 번호를 가지고 있다. 정진이는 이 음료들을 섞어 만든 칵테일을 만든다. 이 칵테일은 홀짝 칵테일이라 부르는데, 홀짝 칵테일은 칵테일에 들어가는 음료들의 고유 번호의 곱에 해당하는 맛을 가진다.

정진이는 여러 가지 칵테일을 맛본 결과, 맛이 홀수인 칵테일이 맛이 짝수인 칵테일보다는 무조건 맛있다고 느낀다. 또한, 똑같이 홀수이거나 짝수인 맛을 가진 칵테일끼리는 맛이 더 큰 칵테일을 더 맛있다고 느낀다.

음료 셋의 고유 번호가 주어졌을 때 정진이가 이 음료들을 조합해 만들 수 있는 칵테일 중 가장 맛있다고 느끼는 칵테일의 맛을 알려주자.

칵테일을 만들 때는, 반드시 모든 음료를 사용할 필요는 없지만, 적어도 하나의 음료는 사용해야 한다. 하나의 음료만 사용하는 경우 칵테일의 맛은 사용한 음료의 고유 번호와 같다.

또한, 주어지는 세 음료는 서로 다른 고유 번호를 가지고 있다.

입력

첫째 줄에는 주어진 세 음료의 고유번호 A, B, C가 주어진다.

출력

첫째 줄에 만들 수 있는 홀짝 칵테일 중 가장 정진이가 맛있다고 느끼는 홀짝 칵테일의 맛을 출력한다.

제한

1 ≤ A, B, C ≤ 100

예제 입력 1 복사

2 3 5

예제 출력 1 복사

15

예제 입력 2 복사

11 33 99

예제 출력 2 복사

35937

예제 입력 3 복사

22 44 88

예제 출력 3 복사

85184

 

 

[소스 코드]

 

a,b,c = map(int, input().split())

cocktail = []
cocktail.append(a) #하나의 음료만 사용
cocktail.append(b)
cocktail.append(c)
cocktail.append(a*b) #두 개의 음료 사용
cocktail.append(a*c)
cocktail.append(b*c)
cocktail.append(a*b*c) #세 개 모두 사용

best = cocktail[0]
for c in cocktail:
    if c == best: #best와 같다면 비교할 필요 없음
        continue
        
    if best % 2 == 0: #best가 짝수일 때 
        if c % 2 == 0: #c도 짝수이면 크기를 비교한다
            if best > c:
                continue
            else:
                best = c
        else:
            best = c
    else: #best가 홀수일 때
        if c%2 == 0: #c가 홀수이면 best는 바뀌지 않음
            continue
        else:
            if best>c:
                continue
            else: #c도 홀수라면 더 큰 수가 best로 선택
                best = c

print(best)
반응형