[백준Java] 16486번 _ 운동장 한바

박주현·2023년 9월 11일
0

Baekjoon

목록 보기
15/24
post-thumbnail

https://www.acmicpc.net/problem/16486

1. 문제

세연이네 학교 운동장은 아래와 같다.

위의 그림에서 영역 A와 B는 반원이며, 영역 C는 직사각형이다. 영역 C의 가로의 길이를 d1, 영역 A의 반지름의 길이 d2의 값이 주어지면 운동장의 한 바퀴 둘레를 알아내는 프로그램을 작성하시오. (단, 이 문제에서는 π (원주율)의 값을 3.141592라고 한다.)

2. 입력

첫째 줄에 d1의 값이 주어진다. 둘째 줄에는 d2의 값이 주어진다. (d1, d2의 값은 100,000 이하의 양의 정수)

3. 출력

첫째 줄에 문제에서 요구하는 정답을 출력한다. 절대/상대 오차는 10-6 까지 허용한다.

4. 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Num16486 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        /*
            A , B : 반원
            C : 직사각형

            d1 : C의 가로 길이
            d2 : A의 반지름
         */

        double d1 = Double.parseDouble(br.readLine());
        double d2 = Double.parseDouble(br.readLine());

        double result = (2 * d1) + (2 * d2 * Math.floor(Math.PI * 1000000)/1000000.0);

        System.out.println(result);
    }
}

5. 회고

문제를 보고나서, 주석으로 문제를 정리해보고 난 후,
그림을 그려서 둘레를 구해보았다.

주어진 입력을 통해서 계산하게되면 이상없었지만, 코드를 작성하면 소수점이 안나와서 정답이 틀렸다.

너무 성급하게 푼 나머지...
double로 해야하는것을 int라고 해서 풀어서 정답이 안나왔다.

5. 학습한 내용

총 둘레
: (C의 가로 2) + (2 3.141592 * a의 반지름)

profile
빌드업 막 시작하는 개발자

0개의 댓글