티스토리 뷰

알고리즘/BOJ

[백준] 3020 개똥벌레

세진짱 2019. 8. 27. 22:09

lower_bound를 이용하여 풀 수 있는 문제다

x축에서의 좌표를 홀,짝으로 나눠 높이를 저장하고 

높이 y로 지나갈 때 각각의 좌표를 지나가는지 확인하면 된다

이 부분을 배열을 정렬하고 lower_bound를 이용한다면 쉽게 구할 수 있다

홀수 일때는 찾을때 높이에서 빼서 거꾸로 찾으면 된다

 

소스코드

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
31
32
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int n,h;
int ans[200020];
vector<int> odd,even;
 
int main(){
    //freopen("input.txt","r",stdin);
    scanf(" %d %d",&n,&h);
    for(int i=0;i<n;i++){
        int x; scanf(" %d",&x); x--;
        if(i&1) odd.push_back(x);
        else even.push_back(x);
    }
    sort(odd.begin(),odd.end());
    sort(even.begin(),even.end());
    h--;
    int es = even.size();
    int os = odd.size();
    for(int i=0;i<=h;i++){
        int a = es-(lower_bound(even.begin(),even.end(),i)-even.begin());
        int b = os-(lower_bound(odd.begin(),odd.end(),h-i)-odd.begin());
        ans[a+b]++;
    }
    for(int i=0;i<=n;i++){
        if(ans[i]){
            printf("%d %d\n",i,ans[i]); return 0;
        }
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

 

'알고리즘 > BOJ' 카테고리의 다른 글

[백준] 1987 알파벳  (0) 2019.08.27
[백준] 3649 로봇 프로젝트  (0) 2019.08.27
[백준] 2632 피자판매  (0) 2019.08.27
[백준] 2206 벽 부수고 이동하기  (0) 2019.08.27
[백준] 1194 달이 차오른다, 가자.  (0) 2019.08.27
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
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 31
글 보관함