SSONG Cloud

[SWEA] 6692 다솔이의 월급 상자 본문

Algorithm/SW Expert Academy

[SWEA] 6692 다솔이의 월급 상자

SSONGMI 2021. 2. 11. 13:49
반응형

: 다솔이가 받을 수 있는 금액과 해당 금액을 받을 확률이 쌍으로 여러개 주어진다.

: 이러한 확률을 금액에 반영하여 다솔이가 얻을 수 있는 월급의 평균을 구하는 문제이다.

: 단순하게 생각하면 되는데 해당 금액과 받을 확률을 곱하여 그 쌍을 모두 더해주면 된다.

: 왜냐하면 값의 평균은 나올 수 있는 값에 나올 확률을 곱해서 모두 더해준 값으로 구할 수 있기 때문이다.

: 주의할 점은 확률과 전체 금액은 소수점으로 나오기 때문에 정수형이 아닌 실수형 변수로 받아주어야 한다.

 

1. 테스트 케이스 수(T)를 입력받는다.

2. 해당 테스트 케이스에서 금액과 확률쌍의 개수(N)를 입력받는다.

3. 금액과 확률을 줄단위로 입력받는다.

4. 입력받은 확률과 금액을 곱해서 전체 금액(total)에 더해준다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
 
public class Solution {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static StringTokenizer st;
    static StringBuilder sb = new StringBuilder();
    public static void main(String[] args) throws NumberFormatException, IOException {
 
        int T = Integer.parseInt(br.readLine());
         
        for(int tc = 1; tc <= T; tc++) {
            int N = Integer.parseInt(br.readLine());
            double total = 0;
             
            for(int i = 0; i < N; i++) {
                st = new StringTokenizer(br.readLine());
                double prob = Double.parseDouble(st.nextToken());
                double money = Double.parseDouble(st.nextToken());
                total += prob*money;
            }
            sb.append("#" + tc + " " + String.format("%.6f", total) + "\n");
        }
        System.out.println(sb);
    }
 
}
반응형
Comments