전체 글

Hello World!
· Algorithm
https://www.acmicpc.net/problem/10773 수를 입력하고 입력한 수를 모두 더하되 0을 입력하면 가장 최근에 쓴 수를 지우는 문제이다. Vector 안에 수를 넣고 0을 입력받았을 때 Vector안에 있는 수를 지우면 되겠다고 생각했다. 코드 #include #include using namespace std; int main() { int N; int input; cin >> N; int result = 0; vector arr; for (int i = 1; i > input; if (input != 0) { arr.push_back(input); } else if (!arr.empty()) { arr.pop_back(); } } for (int element : arr) { ..
· Etc.
Vector란? 자동으로 메모리가 할당되는 배열이라고 생각하면 된다. 사진과 같이 맨 뒤쪽에서 삽입과 삭제가 가능하며 중간에 값을 삽입하거나 삭제할 수도 있다. 하지만 이는 배열기반이기에 삽입 삭제가 빈번하게 일어나면 비효율적이다. Vector의 사용법 vector의 선언은 vector [변수이름] ex) vector arr Vector의 생성자와 연산자 vector arr; - 비어있는 vector arr를 생성함 vector arr(5); - 기본값 0으로 초기화 된 5개의 원소를 가지는 vector v를 생성함 vector arr(5, 2); - 2로 초기화된 5개의 원소를 가지는 vector arr를 생성함 vector arr1(5, 2); vector arr2(arr1); - arr2는 arr1..
· Etc.
문제를 자주 풀다보면 시간이 초과되어 오답으로 처리되는 경우가 있었다. 다른 언어는 잘 모르지만 C++언어에서 입출력을 향상시키는 방법을 몇가지 적어보려고 한다. ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); 의미와 장단점 ios_base::sync_with_stdio 구문은 c의 stdio와 c++의 iostream을 동기화시켜주는 역할을 하는데 이 때 iostream과 stdio의 버퍼를 모두 사용하기에 딜레이가 발생한다. 따라서 ios_base::sync_with_stdio(0)를 작성해 동기화를 비활성화 시켜줄 수 있다. 이로 인해 c++만의 독립적인 버퍼 생성, c의 버퍼와 병행할 수는 없지..
· Algorithm
https://www.acmicpc.net/problem/1929 소수를 출력하는 문제이지만 다음 문제와 같이 사용자가 직접 범위를 지정하는 경우에는 무조건 2부터 시작하지는 않기에 일반적인 소수 출력으로는 문제를 풀기 쉽지 않다. 범위 내 소수를 구하는 방법 중 하나인 에라토스테네스의 체를 이용해 문제를 풀었다. 코드 #include #include using namespace std; void Eratos(int n, int m) { if (n
· Algorithm
https://www.acmicpc.net/problem/2164 처음 문제를 보고 큐를 이용해서 풀면 되겠다고 생각했다. 큐 헤더 파일을 이용하면 쉽게 풀 수 있는 문제지만 이를 사용하지 않고 문제를 풀어보고 싶었다. 코드 #include #define MAX 500000 using namespace std; int main() { int N,last; int first = 0; int arr[MAX]{}; cin >> N; for (int i = 0; i < N; i++) { arr[i] = i+1; } last = N - 1; while(1) { first += 1; if (first == last) { break; } last += 1; arr[last] = arr[first]; first += ..
alsrudwls01
Develop.Log