기록하지 않았다면 잃어버릴 시간들
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
블로그 내 검색

기록하지 않았다면 잃어버릴 시간들

새로운 것을 배우는게 즐거운 개발자입니다.

  • 알고리즘/백준

    BOJ16938 캠프준비 / C++

    2022. 3. 13.

    by. 내이름은 킹햄찌

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

     

    16938번: 캠프 준비

    난이도가 10, 30인 문제를 고르거나, 20, 30인 문제를 고르면 된다.

    www.acmicpc.net

    백준 온라인저지 16938번 캠프준비 문제입니다.

    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    
    int n, l, r, x;
    vector<int> arr;
    void Input() {
    	cin >> n >> l >> r >> x;
    	int sum;
    	for (int i = 0; i < n; i++) {
    		cin >> sum;
    		arr.push_back(sum);
    	}
    }
    
    void solution() {
    	int cnt = 0;
    	sort(arr.begin(), arr.end());
    	for (int i = 1; i < (1 << n); i++) {
    		int total = 0;
    		vector<int> p;
    		for (int j = 0; j < n; j++) {
    			if (i&(1 << j)) 
    				p.push_back(arr[j]);					
    		}
    		if (p.size() < 2) continue;
    		if (p[p.size()-1] - p[0] < x) continue;
    		for (auto iter : p) 
    			total += iter;
    
    		if (total >= l && total <= r)
    			cnt++;
    	}
    	cout << cnt;
    }
    
    int main(void) {
    	Input();
    	solution();
    }

    아이디어

    비트마스킹을 이용하여 모든 경우의수를 확인 할 수 있고, 조건에 유의하여 풀이

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

    BOJ13701 중복제거/C++  (0) 2022.03.13
    BOJ1562 계단수/C++  (0) 2022.03.13
    BOJ18119 단어 암기 /C++  (0) 2022.03.13
    BOJ1062/C++  (0) 2022.03.12
    BOJ14391/ C++  (0) 2022.01.26

    댓글

    관련글

    • BOJ13701 중복제거/C++ 2022.03.13
    • BOJ1562 계단수/C++ 2022.03.13
    • BOJ18119 단어 암기 /C++ 2022.03.13
    • BOJ1062/C++ 2022.03.12
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
내이름은 킹햄찌

티스토리툴바