본문 바로가기
구름톤

[구름톤 챌린지, Java] 1일차, 운동 중독 플레이어(구현)

by 열정적인 이찬형 2023. 8. 14.

문제 링크

 

구름LEVEL

난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.

level.goorm.io


접근 방법

이 문제에 핵심

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를 이용하여 WR을 띄어쓰기 기준 구분합니다.
  • 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형으로 형변환을 진행하였습니다.

 

문제를 자세히 읽고 코드를 작성할 때 문제의 요구사항에 맞게 작성하는 중요성을 깨닫게 되었습니다.

 

 

댓글