Java/Java 알고리즘

백준 24855번 Natives JAVA 구현해보기

kimc 2022. 5. 7. 14:17

```

백준 24855번 Natives JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1. 백준 24855번 풀이

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

 

24855번: Natives

Captain Cook and his team were captured by island natives. Not to be eaten, the adventurers must give some treasures to natives. It turned out that the captain has $n$ treasures. Chieftain of the natives agrees to let the captain and his team go, if they g

www.acmicpc.net

백준 24855번 Natives는 

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

 

보물의 개수 N을 입력받고

N의 가치들이 주어질 때

홀수면 반 + 1,

짝수면 반을 넘기고 남은 보물의 가치의 합이 최대가 되게 할 때

해당되는 가치의 합을 출력해주면 됩니다.


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

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


입력을 받고

역순으로 큰 수부터 정렬하고

남은 가치의 합을 구해서

출력해주었습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) throws IOException {
        // BufferedReader Object 생성
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // 입력
        final int tSize = Integer.parseInt(br.readLine());
        final int tHalfSize = tSize /2;
        List<Integer> tValues = Arrays.stream(br.readLine().split(" "))
                .map(Integer::parseInt).sorted(Comparator.reverseOrder())
                .collect(Collectors.toList());

        // 가치합 계산
        final int tHalfSum = IntStream.range(0, tHalfSize).map(tValues::get).sum();

        // 출력
        System.out.print(tHalfSum);
        // 생성된 BufferedReader 반환
        br.close();
    }
}
//codemasterkimc.tistory.com [김씨의 코딩 스토리]

 

읽어주셔서 감사합니다

 

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

 

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

 


 

728x90