binary search 4

백준 17219 c++ 풀이

안녕하세요 오늘은 이진탐색을 이용하여 문제를 풀어보겠습니다. 전략: 1. string, string 을 페어로 하는 pair를 타입으로 하는 v라는 vecotr를 만들고, string 타입으로 x, y를 입력 받아서 각각 v[i].first, v[i].second에 대입해주고 이진탐색을 위해 sort를 해준다. 2. string 타입의 x라는 변수를 입력받고, 이진탐색을 진행하여 만약 x와 v[mid].first가 같으면 v[mid].second를 출력한다. 코드: #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N, M; cin>>N>>M; vector v(N); for(int i..

BOJ 문제풀이 2021.08.17

백준 1764번 c++ 풀이

안녕하세요 오늘은 이진탐색으로 문제를 풀어보겠습니다. 전략: 1. see(보지 못한 사람), hear(듣지 못한 사람), result 라는 이름의 string 타입의 vector를 선언여 see와 hear를 구분하여 input을 받는다. 2. see를 탐색할 예정이기 때문에 see를 sort해준다. 어느 이진탐색과 탐색을 실행하고, hear[i]와 see[mid]가 같으면 그 값을 result 뒤에 넣어준다. 3. 최종적으로 result의 길이를 출력하고, sort하여 사전순으로 출력한다. 코드: #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N, M; cin>>N>>M; vect..

BOJ 문제풀이 2021.08.17

백준 1620번 c++ 풀이

https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 사진이 너무 길어질까봐 오늘은 링크를 남깁니다. 안녕하세요 오늘은 이분탐색을 이용하여 문제를 풀어보겠습니다. 전략: 1. string타입의 vector와 int, string을 페어로 하는 pair타입의 vector를 선언해주고, input을 받아줍니다. 2. p를 정렬해줌으로 문자열 순서대로 정렬합니다. 3. 만약 들어오는 것이 index이면, v[index]를 출력..

BOJ 문제풀이 2021.08.17

백준 2805번 c++ 풀이

안녕하세요 오늘은 이분탐색을 이용한 문제를 풀어볼 것입니다. 전략: 1. long long int type으로 vector를 선언해줍주고 입력을 받는다. 2. l(low)를 1로, h(high)를 vector의 최댓값으로 선언해주고, while문을 만든다. 3. while문이 시작되자마자 l가 h보다 크면 while문이 끝나도록 코드를 짜고, long long int타입의 mid라는 변수를 들어서 l, h의 평균을 입력해준다. 4. 나무를 자른 길이를 cnt에 더해주고, cnt가 M보다 크면 max변수와 mid를 비교하여 더 큰 값을 max에 넣어준다. 코드: #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); co..

BOJ 문제풀이 2021.08.11