회원가입
로그인
Toggle navigation
문제
문제
전체 문제
문제 출처
단계별로 풀어보기
알고리즘 분류
새로 추가된 문제
새로 추가된 영어 문제
새로 추가된 문제 풀이
문제 순위
문제
푼 사람이 1명인 문제
아무도 못 푼 문제
최근 제출된 문제
최근 풀린 문제
랜덤
출처
ACM-ICPC
Olympiad
한국정보올림피아드
한국정보올림피아드시․도지역본선
전국 대학생 프로그래밍 대회 동아리 연합
대학교 대회
카카오 코드 페스티벌
Coder's High
ACM-ICPC
Regionals
World Finals
Korea Regional
Africa and the Middle East Regionals
Europe Regionals
Latin America Regionals
North America Regionals
South Pacific Regionals
문제집
대회
1
채점 현황
랭킹
게시판
그룹
블로그
강의
N
전체
공지
자유
질문
오타/오역/요청
게시판 공지
홍보
업데이트
글쓰기
[python3] 53%에서 계속 틀리네요
1140번 - 요금
lipschitz
2년 전
0
계속 53%에서 틀리는데 원인을 모르겠어요
import math while True: try : # 입력 arr = list(map(int,input().split())) # 문자 개수 msg = [1, arr[1], arr[3]] # 문자 팩의 가격 (0번째는 1건에 10원인 경우) cost = [10, arr[2], arr[4]] # 문자 1건당 드는 금액 cp = [10, arr[2]/arr[1], arr[4]/arr[3]] # 통신비 전체 금액 total = [0, 0, 0] # 문자 1건당 드는 금액을 기준으로, 문자의 개수와 문자팩의 가격을 오름차순 정렬 for i in range(3): for j in range(i+1): if cp[i]<cp[j]: cp[i], cp[j] = cp[j], cp[i] cost[i], cost[j] = cost[j], cost[i] msg[i], msg[j] = msg[j], msg[i] # 통신비 총액 계산 # t = 보낼 문자의 개수 t = arr[0] # total[0] = 가장 싼 문자팩만으로 총액 계산하는 경우 total[0] = cost[0] * (t//msg[0]) total[1] = total[0] t = t%msg[0] # 보낼 문자가 문자팩으로 나눠 떨어지지 않으면, 가장 싼 문자팩 1개 금액 추가 if t%msg[0]!=0 : total[0]+=cost[0] # total[1] = 가장 싼 문자팩으로 최대한 많이 계산하고 # 나머지가 생기면 두번째로 싼 문자팩으로 총액을 계산하는 경우 total[1] += cost[1] * (t//msg[1]) total[2] = total[1] t = t%msg[1] # 보낼 문자가 문자팩으로 나눠 떨어지지 않으면, 두번째로 싼 문자팩 1개 금액 추가 if t%msg[1]!=0 : total[1]+=cost[1] # total[2] = 모든 문자팩을 이용하여 총액을 계산하는 경우 total[2] += cost[2] * math.ceil(t/msg[2]) # 총액 중 가장 작은 값 출력 print(min(total)) except EOFError: break
댓글을 작성하려면
로그인
해야 합니다.
lipschitz 2년 전