본문 바로가기

백준/JAVA

[Baekjoon/JAVA] 2845번 - 파티가 끝나고 난 뒤

Baekjoon Online Judge

문제로 이동

 

문제

파티가 끝나고 나면, 사람들은 누가 파티에 왔는지와 얼마나 많은 사람들이 왔는지를 궁금해한다. 보통 파티는 매우 크게 열리기 때문에, 정확하게 몇 명이 참가했는지 알 수가 없다.

지난주 토요일에 상근이는 자신의 3학년 진학을 기념하면서 매우 성대한 파티를 열었다. 그리고, 상근이는 1m2당 몇 명의 사람이 있었는지 알고있다.

상근이의 파티는 정말 엄청난 규모였기 때문에, 대부분의 신문에도 기사가 실렸다. 상근이는 서로 다른 5개의 신문을 보면서 그 기사에 적혀져있는 참가자의 수를 적었다.

상근이는 자신이 알고있는 참가자의 수가 정확하다고 생각한다. 각 신문 기사에 실려있는 참가자의 수가 몇 명 만큼 잘못되어있는지 구하는 프로그램을 작성하시오.

 

입력

첫째 줄에 1m2당 사람의 수 L (1 ≤ L ≤ 10)과 파티가 열렸던 곳의 넓이 P (1 ≤ P ≤ 1000)가 주어진다.

둘째 줄에는 각 기사에 실려있는 참가자의 수가 주어진다. 106보다 작은 양의 정수 5개가 주어진다.

 

출력

출력은 첫째 줄에 다섯 개의 숫자를 출력해야 한다. 이 숫자는 상근이가 계산한 참가자의 수와  각 기사에 적혀있는 참가자의 수의 차이이다.

 


예제 입력 예제 출력
1 10
10 10 10 10 10
0 0 0 0 0
5 20
99 101 1000 0 97
-1 1 900 -100 -3

풀이

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int L = in.nextInt(); // 1m^2당 사람의 수
        int P = in.nextInt(); // 파티가 열렸던 곳의 넓이
        int arr[] = new int[5]; // 각 기사에 실려있는 참가자의 수

        // 입력
        for (int i = 0; i < 5; i++)
            arr[i] = in.nextInt();

        // 출력
        for (int i = 0; i < 5; i++)
            System.out.printf("%d ", arr[i] - (L * P));
    }
}

해당 문제에서는 1m^2당 사람의 수가 일정하다는 것을 전제로 하고 있다. 그러므로 파티에 참여한 사람의 수는 L * P이다.

각 기사에 실려있는 참가자 수를 배열로 입력 받은 뒤 그 수에 (L * P)를 빼서 실제와 기사의 참가자 수 차이를 구한 뒤 출력했다.