내 잡다한 노트
[C++] 백준 1920 수 찾기 본문
요새 전공수업에서 c++을 해야해서 c++ 연습할 겸 백준 문제를 풀면서 공부하는 중입니다.
이 문제는 단순한 이분탐색 문제입니다. 그런데 아무리해도 시간초과가 계속 나는거에요 ㅠㅠ
방법을 찾으러 30분동안 웹 서핑을 하던 도중... 답을 찾았습니다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool binary_search(vector<int>& n, int temp) {
int low = 0;
int high = int(n.size()) - 1;
int mid;
while (low <= high) {
mid = (low + high) >> 1;
if (temp == n[mid]) {
return true;
}
if (temp > n[mid]) {
low = mid + 1;
}
else{
high = mid - 1;
}
}
return false;
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(NULL);
int n, m;
cin >> n;
vector<int> nvector(n);
for (int i = 0; i < n; i++) {
cin >> nvector[i];
}
sort(nvector.begin(), nvector.end());
cin >> m;
for (int i = 0; i < m; i++) {
int temp;
cin >> temp;
bool ans = binary_search(nvector, temp);
if (ans==true) {
cout << true << "\n"; // endl
}
else {
cout << false << "\n";
}
}
return 0;
}
그 이유는 cout << true << endl; 로 제출을 해서 시간초과가 났던 겁니다.
저걸 "\n" 으로 해야지 시간초과가 안된다고 하더라고요
바꿨더니 바로 성공...
어이가 없어서 진짜 ㅠㅠ
저같은 분 없으시길..
'백준, 프로그래머스(파이썬)' 카테고리의 다른 글
프로그래머스) 무인도 여행 파이썬 (0) | 2023.03.29 |
---|---|
백준 파이썬 13549 문제 (0) | 2023.03.09 |
5014 스타트링크 백준 파이썬 (0) | 2022.09.16 |
3197 백조의 호수 (0) | 2022.08.11 |
17143 낚시왕 파이썬 백준 (0) | 2022.07.16 |