분류 전체보기162 C++ 입출력 가속 코드 백준 문제를 풀다보면, c++로 코딩하였을때 알고리즘이 크게 문제가 없다고 느낄때가 종종 있으나, 시간초과로 인해서 문제가 틀리는 경우가 종종 발생하는 것 같다. 그럴때마다 사용하는 코드가 있는데, main함수 안에 다음과 같은 코드를 넣어주면 신기하게도 입출력 가속이 일어나서 합격한다. ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 그 이유가 늘 궁금했다. 아래 이유가 담긴 포스팅을 복사해왔다. 멀티스레딩과, printf, scanf 를 사용하지 않는 선에서 가속 코드를 적절히 추가해서 사용하는 것이 도움이 될 것 같다. ios::sync_with_stdio(false); stdio.h는 C에서 printf, scanf를 사용할 수 .. 2023. 10. 6. 랜선 자르기 #1654 c++ 풀이 https://www.acmicpc.net/problem/1654 처음 생각한것 : 순회 2억번 이상 연산으로, 시간 초과가 날 가능성이 있어보여서 순회가 아닌 다른 방식을 사용해야한다. 랜선을 자를 수 있는 경우가 1~들어온 랜선의 최대길이 이므로, sorting되어진 리스트의 이진 탐색을 사용하여, 구현해야하는 문제이다. 또한 자료형도 생각해봐야한다. 정수 끝까지 2^31-1 값이 들어갈 수 있으므로, unsigned int를 사용해주는 것이 좋다. #include #include #include using namespace std; unsigned int list[10000]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.t.. 2023. 10. 6. [STL] vector unique 함수 vector 배열에서 중복되지 않는 원소들을 앞에서부터 채워나가는 함수이다. algorithm이라는 헤더에 존재하는 함수이다. unique함수를 사용하면 중복 없는 요소를 채운 후 남은 요소는 원래 배열의 요소를 그대로 넣는다. 즉, 중복되지 않는 원소들을 앞에서부터 채워나가는 역할을 하기때문에 남은 뒷부분은 그대로 vector 원소값이 존재한다. 또한 unique 함수가 끝나면 중복이 없는 요소의 끝 점을 반환한다. 중복을 완전히 제거하지 못하는 문제를 해결하기 위해 erase 함수를 사용해서 남은 뒷부분을 제거야한다. erase 함수는 vector 배열에서 특정 원소를 삭제하는 함수이다. v.erase(v.begin(), v.end()) 명령어를 입력하면 처음부터 끝까지 배열 내 모든 원소가 제거된다.. 2023. 10. 5. 수 찾기 #1920 c++ 풀이 #include #include #include #include #include #include using namespace std; vector arr1; vector arr2; int main() { int N, M; ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int temp; cin >> N; for (int i = 0; i > temp; arr1.push_back(temp); } cin >> M; for (int i = 0; i > temp; arr2.push_back(temp); } sort(arr1.begin(), arr1.end()); for (int i = .. 2023. 10. 5. 이전 1 ··· 23 24 25 26 27 28 29 ··· 41 다음