[BOJ] 1449번 : 수리공 항승

2021. 7. 2. 23:16·CS/PS

매우 간단한 greedy와 sort 문제이다.

 

입력받은 물이 새는 위치를 정렬하고, 정렬된 값을 앞에서부터 테이프를 가장 많이 남기는 방식으로 붙여나가면 된다. 이것의 정당성 증명은 간단하다. 특정 물이 새는 위치 leak[i]까지만 보았을 때, leak[i]가 이미 테이프로 cover되어 있다면 테이프를 붙이지 않는 것이 자원을 가장 아끼는 방법이고, 테이프가 cover되어 있지 않다면 테이프를 가장 많이 남기는 방식으로, 즉 leak[i]-0.5 지점부터 붙이는 것이 가장 자원을 아끼는 방법이다. leak[i]까지만 보았을 때는 이보다 효율적인 방법은 없고, leak[n]까지 이를 반복하면 된다.

 

시간복잡도는 NlogN + N = O(NlogN)이다.

 

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
#include <stdio.h>
#include <algorithm>
 
using namespace std;
 
const int maxN = 1050;
int n, l;
int leak[maxN];
 
int main ( void ) {
    
    int recent = -1;
    int cnt = 0;
    
    scanf("%d %d", &n, &l);
    for (int i = 0; i < n; i++) scanf("%d", &leak[i]);
    
    sort(leak,leak+n);
    
    
    for(int i = 0; i < n; i++) {
        if(leak[i] <= recent) continue;
        
        recent = leak[i]+ l - 1;
        cnt++;
    }
    printf("%d\n", cnt);
}
Colored by Color Scripter
cs

 

 

'CS > PS' 카테고리의 다른 글

[BOJ] 1028번 : 다이아몬드 광산  (0) 2021.07.05
[BOJ] 1005번 : ACM craft  (1) 2021.07.04
[BOJ] 1074번 : Z  (0) 2021.07.03
[BOJ] 1725번 : 히스토그램  (0) 2021.07.02
[Algospot] 소풍(PICNIC)  (0) 2021.06.16
'CS/PS' Other articles in this category
  • [BOJ] 1005번 : ACM craft
  • [BOJ] 1074번 : Z
  • [BOJ] 1725번 : 히스토그램
  • [Algospot] 소풍(PICNIC)
Jordano
Jordano
  • Jordano
    Jordano
    Jordano
  • Total
    Today
    Yesterday
    • All categories
      • Introduction
      • Theatre⋅Play
      • Thinking
        • iDeAs
        • Philosophy
      • History
        • Cuba
        • China
      • CS
        • HTML·CSS·JavaScript
        • Dart·Flutter
        • C, C++
        • Python
        • PS
        • Algorithm
        • Network
        • OS
        • etc
      • DL·ML
        • Paper
        • Study
        • Project
      • Mathematics
        • Information Theory
        • Linear Algebra
        • Statistics
        • etc
      • etc
        • Paper
      • Private
      • Travel
  • Blog Menu

    • 홈
    • 태그
    • 방명록
  • Link

  • hELLO· Designed By정상우.v4.10.3
Jordano
[BOJ] 1449번 : 수리공 항승
상단으로

티스토리툴바