Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

luke

[백준] - 플러그 (2010) (자바/Java) 본문

알고리즘문제/백준 문제(Java)

[백준] - 플러그 (2010) (자바/Java)

luke-king 2024. 6. 16. 20:14

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

 

풀이.


 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        int chk = 0;
        int tot = 0;
        
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
            chk += arr[i];
            tot = chk - i;
        }
        System.out.println(tot);

    }

}

 

이번 문제는 백준의 "플러그" 문제다.

문제 설명을 하자면 하나의 플러그가 있는데 입력값 n 개의 멀티탭이 주어지며 전체를 연결했을 때 컴퓨터 몇 개를 연결할 수 있는지 구하는 문제다.

이 문제에서 핵심은 멀티탭을 연결했을때 3구 멀티탭은 3개의 컴퓨터를 연결할 수 있다는 걸 알 수 있고

3구, 5구 2개를 연결했을때는 합하면 컴퓨터 8개를 연결할 수 있다 생각하겠지만 멀티탭 한 개를 더 연결하기 위해서는 3구 멀티탭에 5구 멀티탭을 연결하기에 첫 번째 멀티탭은 3개가 아닌 2개만 컴퓨터 연결이 가능하고 다른 5구 멀티탭은 5개 연결이 가능하기에 총 7개다 즉 멀티탭 2개 이상부터는 1씩 빼야 한다는 의미다.

그럼 문제 풀이를 해보겠다.

 

1. 멀티탭 개수를 배열로 담아준다.

 

2. chk 변수와 tot 변수를 생성해 준다.

 

3. arr[i] 만큼 입력값을 받은 후 chk 변수에 arr [i] 번째 값들을 더해준다.

 

4. tot 는 chk 입력받은 값에서 - i만큼 해준다 예제 문제 1번을 봤을 때 이렇게 하면 1개를 입력했을 때에는 -0 이므로

1이고 총 3번 더했을 때 tot의 충족하는 식은 3 - 2 이므로 1인걸 확인할 수 있다. 그럼 끝이다.