Java/Java 알고리즘

백준 17283번 I am Groot JAVA 구현해보기

kimc 2021. 12. 15. 22:14

```

백준 17283번 I am Groot JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1.  백준 17283번 풀이

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

 

17283번: I am Groot

첫 번째 줄에 중심 줄기를 제외한 나뭇가지의 총 길이의 합을 cm단위로 출력하며, 소숫점 이하는 버린다. 총 길이의 합이 106보다 작거나 같은 입력만 주어진다.

www.acmicpc.net

 

 

 

백준 17283번 I am Groot는

난이도 브론즈 등급의 문제로서

 

L 길이의 나뭇가지 몸통이 있고

각 나뭇가지 몸통의 끝에  L * (R / 100)의 나뭇가지가 2개씩 달려있고

각 나뭇가지에서 소숫점은 버리고 나뭇가지의 길이가 5cm 이하인 경우는 없다고 가정할 때

 

L과 R 이 주어진 경우

제일 처음 시작하는 몸통을 제외한 나머지 길이를 구해주면 되는 문제입니다.

 

몸통 길이 L 이 1000
비율이 20일 때

 

200길이 2개

40 길이 4개

8 길이 8개

의 나뭇가지가
총 624의 길이만큼 있음

 


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


길이를 입력받고

데크에 반씩 줄인 길이들을 넣은 다음

스트림을 돌려서 합을 구해준 문제입니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;

public class Main {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));


        int branchLength = Integer.valueOf(br.readLine());
        int branchRatio = Integer.valueOf(br.readLine());

        Deque<Integer> branchLengthDeq = new ArrayDeque<>();

        while (branchLength > 5) {
            branchLength = branchRatio * branchLength / 100;
            branchLengthDeq.push(branchLength);
        }

        branchLengthDeq.pop();
        int sum = branchLengthDeq.stream().reduce(0, (a, b) -> (a + b) * 2);
        System.out.print(sum);
    }


}

 

 

 

 

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

728x90