728x90
문제
민혁이는 한국에서 열리는 7종 경기 대회에 참가한다. 7종 경기는 육상의 필드 경기와 트랙 경기 7 종목으로 이루어져 있다. (100미터 허들, 높이뛰기, 포환던지기, 200미터 달리기, 멀리뛰기, 창던지기, 800미터 달리기)
민혁이의 각 종목의 기록이 주어졌을 때, 기록을 점수로 환산해서 총점을 구하는 프로그램을 작성하시오.
7종 경기의 총점은 각 종목의 점수의 합이다.
각 종목의 점수는 다음과 같은 식을 이용해서 구할 수 있다.
트랙 경기:
필드 경기:
A, B, C는 아래 표에 적혀져 있는 상수이다.
P는 선수의 성적으로 단위는 아래에 나와있다.
모든 종목의 점수는 정수이다.
종목 | A | B | C | P | 종류 |
100미터 허들 | 9.23076 | 26.7 | 1.835 | sec | 트랙 |
높이뛰기 | 1.84523 | 75 | 1.348 | cm | 필드 |
포환던지기 | 56.0211 | 1.5 | 1.05 | m | 필드 |
200미터 달리기 | 4.99087 | 42.5 | 1.81 | sec | 트랙 |
멀리뛰기 | 0.188807 | 210 | 1.41 | cm | 필드 |
창던지기 | 15.9803 | 3.8 | 1.04 | m | 필드 |
800미터 달리기 | 0.11193 | 254 | 1.88 | sec | 트랙 |
모든 필드 경기는 B ≤ P, 트랙 경기는 P ≤ B를 만족한다.
https://www.acmicpc.net/problem/8932
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. (1 ≤ T ≤ 1000)
각 테스트 케이스는 일곱 개의 정수로 이루어져 있다.
이 정수는 민혁이의 종목별 기록이다.
순서는 100미터 허들, 높이뛰기, 포환던지기, 200미터 달리기, 멀리뛰기, 창던지기, 800미터 달리기이다.
출력
각 테스트 케이스에 대해서, 민혁이의 총점을 출력한다.
예제
# input
3
19 90 11 29 264 20 131
12 95 21 37 224 35 221
17 168 15 23 275 22 241
# output
2901
3419
3772
문제 풀이
T = int(input())
for i in range(T):
R = list(map(int, input().split()))
print(int(9.23076 * ((26.7 - R[0]) ** 1.835))
+ int(1.84523 * ((R[1] - 75) ** 1.348))
+ int(56.0211 * ((R[2] - 1.5) ** 1.05))
+ int(4.99087 * ((42.5 - R[3]) ** 1.81))
+ int(0.188807 * ((R[4] - 210) ** 1.41))
+ int(15.9803 * ((R[5] - 3.8) ** 1.04))
+ int(0.11193 * ((254 - R[6]) ** 1.88)))
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90