[BOJ] 13458번: 시험 감독

2023. 2. 16. 11:15·Problem Solving/Baekjoon

출처 : https://www.acmicpc.net/problem/13458

 

13458번: 시험 감독

첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)

www.acmicpc.net

 

 

 

1. 문제 설명 

총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다.

감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 C명이다.

각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다.

각 시험장마다 응시생들을 모두 감시해야 한다. 이때, 필요한 감독관 수의 최솟값을 구하는 프로그램을 작성하시오.

 

 


2. 접근 방식 

그냥 기본 수학문제다 ! 어려운 건 없다. 다만 자바로 풀때는 long형으로 출력해주어야 한다는 점 !

 

 

 


3. 주석 달기 (변수 설명, 각 줄마다 문장으로 설명, 함수 설명)

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

public class Main {
    static FastReader scan = new FastReader();
    static long[] student;
    static int n;
    static long head, manager, cnt = 0;
    public static void main(String[] args) {
        n = scan.nextInt();
        student = new long[n];
        for(int i = 0; i < n; i++) {
            student[i] = scan.nextInt();
        }
        head = scan.nextInt();
        manager = scan.nextInt();

        for(int i = 0; i < student.length; i++) {
            student[i] = Math.max(0, student[i]-head);
            cnt++;
        }

        for(int i = 0; i < student.length; i++) {
            if(student[i] < 1) continue;
            long number = student[i] / manager;
            cnt += number;
            if(student[i] % manager != 0) cnt++;
            student[i] = 0;
        }
        System.out.println(cnt);
    }
    static class FastReader {
        BufferedReader br;
        StringTokenizer st;

        public FastReader() {
            br = new BufferedReader(new InputStreamReader(System.in));
        }

        public FastReader(String s) throws FileNotFoundException {
            br = new BufferedReader(new FileReader(new File(s)));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt() {
            return Integer.parseInt(next());
        }

        long nextLong() {
            return Long.parseLong(next());
        }

        double nextDouble() {
            return Double.parseDouble(next());
        }

        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
    }
}

 

4. 분석 및 시간복잡도 

시간복잡도 : O(N)

 

 

'Problem Solving/Baekjoon' 카테고리의 다른 글
  • [BOJ] 14500번: 테트로미노
  • [BOJ] 12813번: 이진수 연산
  • [BOJ] 11723번: 집합
  • [BOJ] 25327번: 다중 항목 선호도 조사(Large)
kimdozzi
kimdozzi
끝까지 포기하지 않으면, 내가 다 이겨!
  • kimdozzi
    도브로
    kimdozzi
  • 전체
    오늘
    어제
    • 분류 전체보기 (132)
      • Problem Solving (49)
        • Baekjoon (29)
        • Programmers (0)
        • LeetCode (17)
        • 삼성 유형 (2)
      • Computer Science (27)
        • Operating System (2)
        • Algorithms (13)
        • Network (6)
        • DataBase (6)
      • Backend (33)
        • JavaScript (0)
        • TypeScript (6)
        • Java (7)
        • Spring Boot (7)
        • Spring Security (6)
        • JPA (2)
        • Mybatis (1)
        • Junit5 (1)
        • Redis (3)
      • DevOps (14)
        • Git, Github (5)
        • docker (4)
        • AWS (3)
        • nginx (2)
      • etc (6)
        • IntelliJ (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 티스토리
    • 설정
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    구간 업데이트
    타입스크립트
    백준
    AWS
    interface
    알고리즘
    docker image
    오블완
    imos법
    도커
    segment tree
    PrefixSum
    삼성기출
    오프라인 쿼리
    세그먼트 트리
    인덱스 시그니처
    CORS
    온라인 쿼리
    파이썬
    티스토리챌린지
    S3
    Bucket
    컨테이너
    점 업데이트
    docker
    인터페이스
    인덱서블 타입
    python
    누적합
    구간합
    TypeScript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
kimdozzi
[BOJ] 13458번: 시험 감독
상단으로

티스토리툴바