본문 바로가기
프로그램

[파이썬] 문제 : 음식에 대한 투표 및 비율 추력

by 오디세이99 2022. 12. 23.
728x90
반응형

(문제)

사용자로부터 음식에 대한 투표 수를 입력 받고 그 비율을 출력하는 코드를 작성하세요. 

요구사항은
• 사용자로부터 세가지 음식에 대한 투표 수를 입력 받습니다. 
• 투표 수는 정수 형태로 입력하고,이외의 경우는 고려하지 않습니다.
• 음식 이름,투표 수,투표비율을 출력하고 투표 비율은 소수점 둘째자리까지 출력합니다. 
• 출력 시 각 단어 및 길이에 유의하여 출력합니다.(메뉴 이름 및 투표수는 할당된 칸 이상의 글자를 입력하지 않습니다.) 
• 이 외 명시되지 않은 내용은 실행 예시와 동일하게 작성합니다.
요구 조건 실행 예시 * 진한부분 사용자의 입력을, 그 이외 부분은 출력을 나타냅니다. 
Vote for TTEOKBOKKI: 55 
Vote for CHICKEN: 125
Vote for NOODLE: 20 
MENU              VOTE   RATIO
TTEOKBOKKI      55       27.50
CHICKEN          125      62.50
NOODLE           20       10.00
12칸                6칸          8칸 

 

 

(방법)

menu = ['TTEOKBOKKI','CHICKEN','NOODLE']

vote = [0 for _ in range(len(menu))]     # menu가 3개 이니 [0,0,0] 이 만들어짐

for i in range(len(vote)):
    vote[i] = int(input(f'Vote for {menu[i]}: '))   # 입력 받기

v_sum = sum(vote)              # 전체 합계
result = []                    # 비율 저장 리스트 변수
for i in range(len(vote)):    
    r = vote[i] / v_sum * 100  # 비율 계산
    result.append(r)           # 결과 리스트에 추가

for i in range(len(result)):
    print('{0:<12} {1:>6} {2:>8}'.format(menu[i], vote[i], round(result[i],2)))

 

더 쉬운 코드.

v1 = int(input('Vote for TTEOKBOKKI: ')) # 입력 받기
v2 = int(input('Vote for CHICKEN: ')) # 입력 받기
v3 = int(input('Vote for NOODLE: ')) # 입력 받기

v_sum = v1 + v2 + v3 # 전체 합계
r1 = v1 / v_sum * 100 # 비율 계산
r2 = v2 / v_sum * 100 # 비율 계산
r3 = v3 / v_sum * 100 # 비율 계산

print('{0:<12} {1:>6} {2:>8}'.format('TTEOKBOKKI', v1, round(r1,2)))
print('{0:<12} {1:>6} {2:>8}'.format('CHICKEN', v2, round(r2,2)))
print('{0:<12} {1:>6} {2:>8}'.format('NOODLE', v3, round(r3,2)))
728x90
반응형

댓글