티스토리 뷰

 

생각하며 풀어야하는 문제다!

이런 쉽게쉽게 생각하고 최적을 찾는 문제 잘푸는 사람들이 있던데..

나는 아니다 ㅎㅎ

 

처음에 거꾸로 정렬시키고 투포인터로 뒤에서부터 보면 무조건 된다고 생각했다

근데 대충 테케를 만들어보다가

2 4 5 6 7 8 8 9 50 100 이걸 넣었다가 내 코드에서는 7이 나오는걸 발견했다 답은 6..!

 

생각해보면 최대답은 2/N이다 박스에 한개만 넣을수 있기 때문에!

 

그럼 우리는 반으로 잘라서 0~2/N, N/2+1~N 까지 l,r로 나눠서 넣어보면 된다!

 

풀고나면 참 쉬워보이는 문제.. 근데 한번에 떠올리기가 참 쉽지않다! 

 

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <algorithm>
using namespace std;
int n,ans;
int arr[500050];
int main(){
    scanf(" %d",&n);
    for(int i=0;i<n;i++scanf(" %d",&arr[i]);
    sort(arr,arr+n);
    int l=0,r=n/2;
    while(l<n/2 && r<n){
        if(arr[l]*2<=arr[r]){
            ans+=1;
            l+=1;
        }
        r+=1;
    }
    printf("%d\n",n-ans);
}
 
 

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

[백준] 12924 멋진 숫자 쌍  (0) 2020.02.07
[백준] 12919 A와 B 2  (0) 2020.02.07
[백준] 10800 컬러볼  (0) 2020.02.05
[백준] 1445 일요일 아침의 데이트  (0) 2020.02.05
[백준] 17472 다리 만들기 2  (0) 2020.02.05
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
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
글 보관함