티스토리 뷰
반응형
⊙ 문제
⊙ 입력
⊙ 출력
⊙ 예제 입출력
⊙ 알고리즘 분류
- 자료 구조
- 이분 탐색
- 해시를 사용한 집합과 맵
⊙ 문제 접근 과정
vector를 활용해 값을 입력받고 제일 먼저 해야 할 건 정렬이다.
sort로 정렬을 해주고 algoritm 헤더에 있는 Lower bound와 Upper bound 알고리즘을 사용하면 된다.
참고로 sort도 algoritm 헤더에 있다.
그냥 제출하면 시간 초과가 뜬다.
ios_base :: sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
시간 초과를 해결하기 위해 위 코드를 main함수에 넣어주자.
⊙ Lower bound
선형 구조의 부분 탐색법이다. 이분 탐색과 거의 다를 게 없다.
만약 target 값이 있다면 target 값보다 같거나 큰 첫 번째 위치를 말한다.
⊙ Upper bound
Lower bound와 차이점 하나만 기억하면 된다.
Lower bound는 이상(<=)
Upper bound는 초과(<)
target 값보다 큰 첫번째 위치를 말한다.
예를들어 {1,2,3,3,4}란 배열이 있다.
여기서 target은 3일 때 Lower bound와 Upper bound의 값은 무엇일까?
이상(<=), 초과(<)만 기억하고 적용해보자.
Lower bound(이상) = 2 (index=위치)
Upper bound(초과) = 4 (index=위치)
⊙ 문제 풀이
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n,m;
vector<int> arr;
vector<int> target;
int main() {
ios_base :: sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n;
int count[n]={0,};
for(auto i = 0;i<n;i++) {
int x;
cin >> x;
arr.push_back(x);
}
sort(arr.begin(),arr.end());
cin >> m;
for(auto i =0; i<m;i++) {
int x;
cin >> x;
cout << upper_bound(arr.begin(),arr.end(),x) - lower_bound(arr.begin(),arr.end(),x)<< " ";
}
}
⊙ 결과
⊙ 마무리
아는 만큼 코드 줄을 짧게 가져갈 수 있다.
좋아요는 로그인하지 않아도 누를 수 있습니다!
728x90
반응형
'백준 온라인 저지 [BOJ] > C++ [CPP]' 카테고리의 다른 글
[백준(BOJ)] 2110번 : 공유기 설치 - C++[CPP] (0) | 2021.05.11 |
---|---|
[백준(BOJ)] 2884번 : 알람 시계 - C++[CPP] (0) | 2021.05.11 |
[백준(BOJ)] 1789번 : 수들의 합 - C++[CPP] (0) | 2021.05.10 |
[백준(BOJ)] 10815번 : 숫자 카드 - C++[CPP] (0) | 2021.05.10 |
[백준(BOJ)] 2805번 : 나무 자르기 - C++[CPP] (0) | 2021.05.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프로그래머스
- 자바스크립트
- 운영체제
- JS
- 우종정
- CPP
- Python
- 파이썬
- 쉽게배우는자바프로그래밍
- 정답
- 백준
- 답
- 해답
- BFS
- 구현
- 알고리즘
- java
- 풀이
- 문자열
- 쉽게 배우는 자바 프로그래밍
- 자바
- Web
- 정렬
- 연습문제
- 쉽게배우는
- 정리
- OS
- 그리디
- py
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함