본문 바로가기

c++86

[c++] 'cin.ignore()' 기본 구조'istream' 에 정의 되어 있다.두개의 매개변수를 받을 수 있다.istream& ignore(streamsize n = 1, int delim = EOF);'n (streasize)': 무시할 최대 문자수를 지정한다. 기본값은 1이다.'delim (int)': 입력을 멈출 문자를 지정한다. 기본값은 'EOF(End Of File: 파일의 끝또는 종료) 이다.주 사용 목적1. 버퍼 정리: 'cin'을 사용하고 남은 개행 문자('\n')를 제거 할때 사용한다.'cin'으로 입력 받고 남은 개행 문자를 그대로 두면, 다음 입력에서 개행 문자를 즉시 입력으로 처리한다.2. 특정 문자까지 입력 건너뛰기:입력에서 특정 문자까지 입력을 무시하고 싶을 때(예: 사용자 입력에서 쉼표나 다른 구분자까지 모든.. 2025. 3. 2.
[c++] 알고리즘 문제 입출력 속도 향상 방법 1. 'ios_base::sync_with_stdio(false);''c++'의 'iostream'과 'c'의 'stdio'간의 동기화를 비활성화한다.보통 'c++'의 입출력은 'c'의 입출력보다 느리지만 이 명령어를 사용하면 'c++'의 입출력 속도가 향상된다.하지만 'c'의 입출력 함수('printf', 'scanf' 등)를 같이 사용할 수 없다.'c++'의 입출력 함수('cin', 'cout')만 사용해 주어야 한다.ios_base::sync_with_stdio(false);ios_base::sync_with_stdio(0);- 나는 'false'대신에 '0'을 쓴다.   2. 'cin.tie(NULL);''cin'과 'cout'은 기본적으로 서로 연결 되어 있다. 필요하지 않으면 성능이 저하 될 .. 2025. 3. 2.
[백준] 15688번 수 정렬하기 5 (c++) https://www.acmicpc.net/problem/15688답#include using namespace std;int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; cin>>n; vector vec; for(int i=0;i>a; vec.push_back(a); } sort(vec.begin(),vec.end()); for(int i=0;i먼저 입력을 받아준다. n(정수형 변수), vec(정수형 vector) 그리고 나서 정렬을 해준다. (sort 함수사용, 이 함수에 대해서는 따로 글을 작성할 것이다.) 문제에선 비내림차순 이라고 했는데 오름차순이랑 똒같다. 그리고 vec의 모든.. 2025. 3. 2.
[c++] sort sort 함수 해더파일에 속해 있다.#include #include int main() { std::vector vec = {4, 2, 3, 1, 5}; std::sort(vec.begin(), vec.end()); //기본 오름차순 정렬 for (int n : vec) { std::cout 👆 위와 같은 형식으로 사용한다.vec의 요소들이 오름차순으로 정렬 된다.  두 개의 반복자를 인수로 받는다.첫 번쨰는 범위의 시작을, 두번쨰는 범위의 끝을 나타낸다.기본 사용법sort(arr,arr+n); //배열 정렬sort(vec.begin(),vec.end()); //백터 정렬시간 복잡도: 시간 복잡도는 O(NlogN)이다. 'sort' 함수는 퀵, 힙, 삽입 정렬을 혼합.. 2025. 3. 2.
[c++] 팩토리얼 계산하기 순서반복문재귀함수동적 계획법tgamma1. 반복문 사용'for'문을 사용해서 팩토리얼을 계산한다.unsigned long long factorial(int n) { unsigned long long result=1; for (int i=1;장점/단점장점: 구현이 간단하다, 작은 수에서 빠르게 동작한다.단점: 매우 큰 수에 대해 오버플로우가 발생할  수 있다.2. 재귀함수 사용'재귀함수'를 사용해서 팩토리얼을 계산한다.(함수 호출은 n을 하나씩 감소시키며 1에 도달할때 까지 계속한다.)unsigned long long factorial(int n) { if (n==0) return 1; return n*factorial(n-1);}장점/단점장점: 코드가 매우 간결한다.단점: 매우 큰 .. 2024. 4. 28.
[백준] 10869번 사칙연산 (c++) https://www.acmicpc.net/problem/10869. 10869번: 사칙연산두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net답#include using namespace std;int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int a,b; cin>>a>>b; cout1. 변수'a': 입력받는 첫번째 정수이다.'b': 입력받는 두번째 정수이다.2. 입력사용자가 입력한 값을 각각 'a'와 'b'에 저장한다.'int'형 정수를 입력 받는다.3. 출력a+b, a-b, a*b, a/b, a%b를 차례대로 출력한다.각각 출력 후에는 줄바꿈을 .. 2024. 4. 27.