개발자를 향해...

백준 - 1449 수리공 항승 (java) 본문

코테 공부

백준 - 1449 수리공 항승 (java)

eugeneHwang1124 2022. 4. 23. 20:04
728x90
반응형

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

 

1449번: 수리공 항승

첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나

www.acmicpc.net

 

위치를 LinkedList로 받아 Collection.sort로 정렬한 후 for문을 통해 각 값에 대해 위치+0.5의 값을 마지막 테이프의 오른쪽 위치 값과 비교해가며 위치+0.5가 더 클 경우 새로운 테이프를 왼쪽에 붙여주며 마지막 테이프의 오른쪽 위치 값을 갱신해나간다.

 

package com.company;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;

public class 수리공항승1449 {
    public static void main(String[] args) throws IOException {
        int n , tapelength;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] t = br.readLine().split(" ");
        n = Integer.parseInt(t[0]);
        tapelength = Integer.parseInt(t[1]);
        LinkedList<Integer> points = new LinkedList<>();
        t = br.readLine().split(" ");
        for(int i =0; i<n; i++){
            points.add(Integer.parseInt(t[i]));
        }
        Collections.sort(points);
        int count =0;
        double left =1000; double right = 0;

        for (int i:points) {
            double tl = i-0.5;
            double tr = i+0.5;
            if(right<tr){
                count++;
                left = tl;
                right = tl+tapelength;
            }
        }
        System.out.println(count);
    }
}
반응형

'코테 공부' 카테고리의 다른 글

백준 -9465 스티커 (java)  (0) 2022.04.23
백준 - 14503번 로봇청소기 (java)  (0) 2022.04.23