문제 링크
접근 방법
이 문제에 핵심
1. 1RM을 구하는 공식은 문제에 내용과 같습니다.
2. 1RM의 소수점을 버린 값을 결과로 출력합니다.
3. 주어지는 수는 모두 정수이며, 플레이가 들 수 있는 무게는 무한히 크다고 가정합니다.
알고리즘 진행 순서.
1. 입력된 정보를 저장합니다.
2. 1RM의 공식대로 계산을 진행합니다.
3. 계산한 결과를 출력합니다.
구현
1RM에 공식을 통해서 계산을 진행합니다.
W : 무게
R : 반복 횟수
1RM = W × (1 + R ÷ 30)
주의할 점은 결과가 소수점이 나와도 해당 소수점들은 모두 버리는 과정을 진행해야 합니다.
예제입력 1.
1. 입력된 정보를 저장합니다.
W : 100
R : 30
2. 1RM의 공식대로 계산을 진행합니다.
1RM = W × (1 + R ÷ 30)
= 100 × (1 + 30÷ 30)
= 100 × (1 + 1.00)
= 100 × 2.00
= 200.00
3. 계산한 결과를 출력합니다.
계산한 결과 200을 결과로 출력합니다.
- BufferedReader를 사용하여 입력되는 정보를 저장합니다.
- StringTokenizer를 이용하여 W와 R을 띄어쓰기 기준 구분합니다.
- 1RM의 공식을 토대로 계산을 진행합니다.
- 계산한 결과를 BufferedWriter에 저장합니다.
- BufferedWriter에 저장된 결과를 출력합니다.
결과코드
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws Exception {
//입력값 처리하는 BufferedWriter
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//결과값 출력하는 BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//입력값 저장
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int W = Integer.parseInt(st.nextToken());
int R = Integer.parseInt(st.nextToken());
double result = W * (1 + R / 30F); //1RM 공식을 토대로 계산
/*
(int)형변환을 통한 소수점 버리기
결과값 BufferedWriter 저장
*/
bw.write(String.valueOf((int)result));
bw.flush();
bw.close();
br.close();
}
}
느낀 점
문제를 처음 접근할 때에는 int형으로 접근하였으나, 소수점 처리를 정확하게 한 뒤에 소수점을 버려야하기 때문에 double으로 계산을 진행한 뒤 int형으로 형변환을 진행하였습니다.
문제를 자세히 읽고 코드를 작성할 때 문제의 요구사항에 맞게 작성하는 중요성을 깨닫게 되었습니다.
'구름톤' 카테고리의 다른 글
[구름톤 챌린지, Java] 6일차, 문자열 나누기(완전 탐색) (0) | 2023.08.21 |
---|---|
[구름톤 챌린지, Java] 5일차, 이진수 정렬(구현, 정렬) (0) | 2023.08.18 |
[구름톤 챌린지, Java] 4일차, 완벽한 햄버거 만들기(구현) (0) | 2023.08.17 |
[구름톤 챌린지, Java] 3일차, 합계산기(구현) (0) | 2023.08.17 |
[구름톤 챌린지, Java] 2일차, 프로젝트 매니징(구현) (0) | 2023.08.15 |
댓글