티스토리 뷰
728x90
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
C++ 이분탐색
모닝 코딩이네요
또 쉽게가려고 이분탐색 들여다보고있는데 제목이 재밌어서요..(핑계)
근데 문제가 더 재밌네요 듣도 못한 사람과 보도 못한 사람들이 주어지고 듣도 보도 못한 사람을 구하는거라니..ㅋㅋ
문자열 벡터 이분탐색 정렬 썼습니다.
접근방법
듣도 못한 사람 명단 벡터에 저장 후 사전순으로 정렬
보도 못한 사람을 듣도 못한 사람들에서 이분탐색으로 찾고 듣도보도못한 사람 명단에 push
듣도보도못한 사람 명단 사전순 정렬 출력 끝
소스코드
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> hearSee;
vector<string> hear;
int H, S;
void binarySearch(string see){
int s = 0;
int e = H-1;
int mid;
while(s <= e){
mid = (s+e)/2;
if(hear[mid].compare(see) == 0){
hearSee.push_back(see);
return;
}else if(hear[mid].compare(see) > 0){
e = mid-1;
}else{
s = mid+1;
}
}
return;
}
int main(){
cin >> H >> S;
string hearname;
for(int i = 0 ; i < H ; i++){
cin >> hearname;
hear.push_back(hearname);
}
sort(hear.begin(), hear.end());
string see;
for(int i = 0 ; i < S ; i++){
cin >> see;
binarySearch(see);
}
sort(hearSee.begin(), hearSee.end());
cout << hearSee.size() << "\n";
for(int i = 0 ; i < hearSee.size() ; i++){
cout << hearSee[i] << "\n";
}
return 0;
}
728x90
'알고리즘 문제풀이' 카테고리의 다른 글
[백준 11659] 알고리즘 62일차 : 구간 합 구하기4 (0) | 2021.01.11 |
---|---|
[백준 2512] 알고리즘 61일차 : 예산 (0) | 2021.01.08 |
[백준 10815] 알고리즘 59일차 : 숫자 카드 (0) | 2021.01.06 |
[백준 2110] 알고리즘 58일차 : 공유기 설치 (0) | 2021.01.05 |
[백준 1934]알고리즘 57일차 : 최소공배수 (0) | 2021.01.04 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 그리디알고리즘
- 최단경로
- 토마토
- 수학
- 정렬
- 가장 큰 수 Swift
- 알고리즘
- 게임이론
- 다이나믹프로그래밍
- 최소힙
- 웹크롤링
- 최대힙
- 가장 큰 수 프로그래머스
- 자바
- 이분탐색
- 우선순위큐
- 스택
- 동적계획법
- 백트래킹
- dp
- 백준
- 트리
- 프로그래머스
- dfs
- 투포인터
- c++
- BFS
- Swift
- 브루트포스
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함