본문 바로가기
백준

[백준] 2010번 : 플러그 – JAVA [자바]

by Hongwoo 2022. 8. 7.
반응형

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

 

2010번: 플러그

첫째 줄에 멀티탭의 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 이어서 둘째 줄부터 N개의 줄에 걸쳐 각 멀티탭이 몇 개의 플러그를 꽂을 수 있도록 되어 있는지를 나타내는 자연수가 주어진다. 이 자연

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

 백준 2010번 플러그는 브론즈 3 난이도의 수학 및 구현 문제이다. 이 문제에서는 멀티탭의 개수 N개가 주어지고 각각의 멀티탭마다 몇 개의 플러그를 꽂을 수 있는지 주어진다. 이때 총 몇 개의 컴퓨터를 연결시킬 수 있는지를 구하면 된다.

 

한번 문제에서 주어진 예시들을 살펴보겠다.

 

EX 1) N = 3, 1 1 1

첫 번째 예시에서는 3개의 멀티탭이 있고 각각의 멀티탭은 1개의 플러그를 가지고 있다. 우선 멀티탭을 콘센트에 꽂는다. 그리고 이 멀티탭에 아무리 다른 멀티탭을 연결시켜도 연결할 수 있는 컴퓨터는 총 1대이다.

 

EX 2) N = 2, 5 8

두 번째 예시에서는 2개의 멀티탭이 있고 각각 플러그가 5개, 8개씩 있다. 따라서 우선 첫 번째 멀티탭을 콘센트에 연결시키고 두 번째 멀티탭을 첫 번째 멀티탭에 연결시킨다. 그러면 첫 번째 멀티탭에서는 4개의 플러그를 이용할 수 있고 두 번째 멀티탭에서는 8개의 플러그를 이용할 수 있다. 따라서 연결할 수 있는 컴퓨터는 총 12대이다.

 

여기서 패턴을 찾을 수 있다. 멀티탭의 개수를 N, 그리고 각각의 멀티탭이 가지고 있는 플러그의 개수를 Pi라고 하겠다. 그러면 연결시킬 수 있는 컴퓨터의 개수는 바로 N + P1 + P2 + ... + Pn - 1이 된다.

 

자세한 코드는 밑에 있다.

 


  • 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int total = 0;
        for (int i = 0; i < n; i++) {
            total += Integer.parseInt(br.readLine());
        }
        total -= (n-1);
        System.out.print(total);
    }
}

 

 

반응형

댓글