코딩테스트

수리공 항승

dofury 2023. 5. 9. 20:30
728x90

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;

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

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int sum1 = 0,sum2 = 0; //민국이 점수총합,대한이 점수 총합 변수

        int tapeLength = 0;
        int tapeCount = 0;
        double presentNum = 0;

        ArrayList<Integer> halls = new ArrayList<Integer>();

        String[] input1 = br.readLine().split(" ");// 입력1
        tapeLength = Integer.parseInt(input1[1]);
        String[] input2 = br.readLine().split(" ");// 입력2
        for (String s: input2) {
            halls.add(Integer.parseInt(s));
        }
        Collections.sort(halls);//정렬 => 낮은 구멍좌표부터 접근하기 위해

        for(int num: halls){
            if(presentNum < num){//현재테이프 x좌표보다 구멍좌표가낮은경우 => 테이프를 붙였는데 그 범위안에 숫자가 있으면 넘어간다.
                presentNum = num-0.5;//테이프를 붙여야하니 구멍좌표에서 0.5뺀 위치부터 시작한다.
                presentNum += tapeLength;//테이프 하나를 다붙인다.
                tapeCount++;//테이프 개수를 늘린다.
            }


        }

            bw.write(String.valueOf(tapeCount));


        bw.flush();
        bw.close();

    }
}

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

728x90