본문 바로가기
코딩테스트/Beakjoon

백준 21312번 : 홀짝 칵테일 [Python]

by 나스나키 2024. 1. 21.
728x90

https://www.acmicpc.net/problem/21312

 

21312번: 홀짝 칵테일

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

www.acmicpc.net

 

 

문제 

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

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

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

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

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

 
 

입력

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

 
 
 

출력

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

 

 

 

예시

 

코드

import sys

a = list(map(int, sys.stdin.readline().split()))
hol = []
su = 1

for i in range(3):
    if a[i] % 2 == 1:
        hol.append(a[i])

if not hol:
    for i in range(3):
        su = su * a[i]
else:
    for i in range(len(hol)):
        su = su * hol[i]
print(su)

 

 

코드 해석

  • 수들을 받는다.
  • 받은 수 중 홀수가 있으면 hol이라는 리스트에 추가한다.
  • 만약 hol이 비어 있다고 하면 받은 수들의 곱들을 출력한 후 종료한다.
  • 아니라면 홀수들의 곱을 출력한 후 종료한다.

728x90