From 1bc6e2b3fd988e8e0e0179d0226125c2019dc436 Mon Sep 17 00:00:00 2001 From: Chanik Jeong <78005321+chanik-s@users.noreply.github.com> Date: Thu, 14 Dec 2023 14:48:14 +0900 Subject: [PATCH 01/10] Create --- submission/exercise-<01>/ | 1 + 1 file changed, 1 insertion(+) create mode 100644 submission/exercise-<01>/ diff --git a/submission/exercise-<01>/ b/submission/exercise-<01>/ new file mode 100644 index 0000000..8178c76 --- /dev/null +++ b/submission/exercise-<01>/ @@ -0,0 +1 @@ +readme From 9952fc4bf2a29291662a7c302191cb24a23d886c Mon Sep 17 00:00:00 2001 From: Chanik Jeong <78005321+chanik-s@users.noreply.github.com> Date: Thu, 14 Dec 2023 14:48:33 +0900 Subject: [PATCH 02/10] Rename to chanikjeong --- submission/exercise-<01>/{ => chanikjeong} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename submission/exercise-<01>/{ => chanikjeong} (100%) diff --git a/submission/exercise-<01>/ b/submission/exercise-<01>/chanikjeong similarity index 100% rename from submission/exercise-<01>/ rename to submission/exercise-<01>/chanikjeong From 84aeaa28d080e5dbd6fbea7207f8da7860f5335f Mon Sep 17 00:00:00 2001 From: Chanik Jeong <78005321+chanik-s@users.noreply.github.com> Date: Thu, 14 Dec 2023 14:49:24 +0900 Subject: [PATCH 03/10] Rename chanikjeong to chanikjeong.cpp --- submission/exercise-<01>/{chanikjeong => chanikjeong.cpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename submission/exercise-<01>/{chanikjeong => chanikjeong.cpp} (100%) diff --git a/submission/exercise-<01>/chanikjeong b/submission/exercise-<01>/chanikjeong.cpp similarity index 100% rename from submission/exercise-<01>/chanikjeong rename to submission/exercise-<01>/chanikjeong.cpp From 60be874b6fe5fb7b739bbb6d612a589a690103fa Mon Sep 17 00:00:00 2001 From: Chanik Jeong <78005321+chanik-s@users.noreply.github.com> Date: Thu, 14 Dec 2023 14:56:04 +0900 Subject: [PATCH 04/10] Update chanikjeong.cpp --- submission/exercise-<01>/chanikjeong.cpp | 34 +++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/submission/exercise-<01>/chanikjeong.cpp b/submission/exercise-<01>/chanikjeong.cpp index 8178c76..a5dce51 100644 --- a/submission/exercise-<01>/chanikjeong.cpp +++ b/submission/exercise-<01>/chanikjeong.cpp @@ -1 +1,33 @@ -readme +#include + +#include +using namespace std; + + +int main() { + + list ls; + int i = 10; + while (i--){ + int k; + cin >> k; + ls.push_back(k); + } + int a, b; + cin >> a >> b; + list::iterator it1, it2; + it1 = it2=ls.begin(); + advance(it1, a); + advance(it2, b); + ls.erase(it1, it2); + + + while (!ls.empty()) { + cout << ls.front()<<" "; + ls.pop_front(); + + } + + + return 0; +} From bb65f2f8876a43f1d13c170ead9fc68c9b6f0e0d Mon Sep 17 00:00:00 2001 From: Chanik Jeong <78005321+chanik-s@users.noreply.github.com> Date: Thu, 14 Dec 2023 16:29:46 +0900 Subject: [PATCH 05/10] Create 02.cpp --- submission/exercise-<01>/02.cpp | 51 +++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 submission/exercise-<01>/02.cpp diff --git a/submission/exercise-<01>/02.cpp b/submission/exercise-<01>/02.cpp new file mode 100644 index 0000000..ea57172 --- /dev/null +++ b/submission/exercise-<01>/02.cpp @@ -0,0 +1,51 @@ +#include +#include +#include +using namespace std; + +vector v; + +int main() { + int i = 10; + + while (i--) { + int k; + cin >> k; + v.push_back(k); + } + int a; + cin >> a; + + //vector::iterator it; + if (find(v.begin(), v.end(), a) != v.end()) { + int idx = find(v.begin(), v.end(), a) - v.begin(); //인덱스 + cout << idx; + } + else { + + int idx = -1; + vector::iterator it= + find_if(v.begin(), v.end(),check(a) ); + + if (it == v.end()) { + cout << idx; + } + else { + for (int i = 0; i < v.size(); i++) { + if (v[i] == *it) + { + idx = i; + break; + } + } + cout << idx; + } + + } + + + + + + return 0; +} From 1e8bb482fc48edcee812c124bf646ecc56df43c9 Mon Sep 17 00:00:00 2001 From: Chanik Jeong <78005321+chanik-s@users.noreply.github.com> Date: Thu, 14 Dec 2023 17:26:01 +0900 Subject: [PATCH 06/10] Create 05.cpp --- submission/exercise-<01>/05.cpp | 44 +++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 submission/exercise-<01>/05.cpp diff --git a/submission/exercise-<01>/05.cpp b/submission/exercise-<01>/05.cpp new file mode 100644 index 0000000..8549ac6 --- /dev/null +++ b/submission/exercise-<01>/05.cpp @@ -0,0 +1,44 @@ +#include +#include +#include +#include //해시 map 사용 +using namespace std; + +int main() { + + int n; + cin >> n; + + unordered_map m1; + while (n--) { + int k; + cin >> k; + auto it = m1.find(k); + if (it != m1.end()) { + it->second += 1; + } + else { //못찾음 + m1.emplace(k, 1); + } + } + int m; + cin >> m; + vector B; + while (m--) { + int k; + cin >> k; + B.push_back(k); + } + + for (const auto& x: B) { + auto it = m1.find(x); + if (it != m1.end()) { + cout << it->second << " "; + } + else { + cout << 0<< " "; + } + } + + return 0; +} From 3cf099a799c993d4e29e2f3ea713ec3c97ee5880 Mon Sep 17 00:00:00 2001 From: Chanik Jeong <78005321+chanik-s@users.noreply.github.com> Date: Thu, 14 Dec 2023 17:33:41 +0900 Subject: [PATCH 07/10] Create 06.cpp --- submission/exercise-<01>/06.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 submission/exercise-<01>/06.cpp diff --git a/submission/exercise-<01>/06.cpp b/submission/exercise-<01>/06.cpp new file mode 100644 index 0000000..6886a87 --- /dev/null +++ b/submission/exercise-<01>/06.cpp @@ -0,0 +1,23 @@ +#include +#include +#include +#include //해시 map 사용 +#include +using namespace std; + +int main() { + int a, b, N; + cin >> a >> b >> N; + + vector A(N); + vector B(N); + + + iota(A.begin(), A.end(), a); + iota(B.begin(), B.end(), b); + + auto res=inner_product(A.begin(), A.end(), B.begin(), 0); + + cout << res; + return 0; +} From 5a7ca74af42aaa4e31e26494b0a64c022b732528 Mon Sep 17 00:00:00 2001 From: Chanik Jeong <78005321+chanik-s@users.noreply.github.com> Date: Fri, 15 Dec 2023 10:07:36 +0900 Subject: [PATCH 08/10] Create exercise_09.cpp --- submission/day2/exercise_09.cpp | 92 +++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 submission/day2/exercise_09.cpp diff --git a/submission/day2/exercise_09.cpp b/submission/day2/exercise_09.cpp new file mode 100644 index 0000000..53dccf9 --- /dev/null +++ b/submission/day2/exercise_09.cpp @@ -0,0 +1,92 @@ +#include +#include +#include + +using namespace std; + +template +class MyVector { +public: + MyVector(const int& temp = 3) { + data = new T[temp]; //data=new int[3] + m_size = 0; + m_capacity = temp; + } + ~MyVector() { + if (data != NULL) { + delete[] data; + } + } + + void push_back(const T& n) { + + if (m_capacity <= m_size) { + m_capacity *= 2; //용량 늘리고 + + T* tmp = new T[m_capacity]; //용량만큼 새 메모리 할당 + for (int i = 0; i < m_size; i++) { + tmp[i] = data[i]; + } + delete[] data; //? 기존 data가 가리키는 부가메모리 해제후 + data = tmp; // tmp가 가리키는 동적 배열 가리키게 + } + //용량 넉넉하면 추가만 + data[m_size] = n; //맨 뒤에 데이터 추가 + m_size++; + } + + void pop_back(/* ... */) { + /* ... */ + m_size = m_size > 0 ? m_size - 1 : 0; + } + + /* return-type */ + T& operator[](size_t i) { /* ... */ + return data[i]; + } + + size_t size() const { + /* ... */ + return m_size; + } + T* begin() { + return data; //시작주소 + } + T* end() { + return data + m_size; // 포인터 주소연산 ,끝 주소(empty) + } +private: + T* data; + size_t m_size; + int m_capacity; + // Define other member variables if necessary +}; + +// Use case +int main() { + + { + MyVector v; + cout <<"초기 사이즈: "<< v.size() << '\n'; + v.push_back(1); // v.size() == 1 + v.push_back(2); // v.size() == 2 + cout<<"1,2 push후 사이즈: "< Date: Fri, 15 Dec 2023 11:14:29 +0900 Subject: [PATCH 09/10] Create exercise_10.cpp --- submission/day2/exercise_10.cpp | 148 ++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 submission/day2/exercise_10.cpp diff --git a/submission/day2/exercise_10.cpp b/submission/day2/exercise_10.cpp new file mode 100644 index 0000000..ee71d21 --- /dev/null +++ b/submission/day2/exercise_10.cpp @@ -0,0 +1,148 @@ +#include +#include +#include + +using namespace std; + +template +class MyVector { +public: + MyVector(const int& temp = 3) { + data = new T[temp]; //data=new int[3] + m_size = 0; + m_capacity = temp; + } + ~MyVector() { + if (data != nullptr) { + delete[] data; + } + } + // + MyVector(const MyVector& r) //복사 생성자 + { + data = new T[r.m_capacity]; + m_size=r.m_size; + m_capacity = r.m_capacity; + copy(r.data, r.data + m_size, data); //r.data -> data로 복사 + } + + MyVector(MyVector&&r) noexcept //이동 생성자 + { /* ... */ + m_size = exchange(r.m_size,0); + m_capacity = exchange(r.m_capacity,0); + data = r.data; + + r.data = nullptr; //자신이 가리키고 있던 메모리 해제하지 못하게 + + } + //복사 대입 연산자 + MyVector& operator=(const MyVector& r) { /* ... */ + if (this !=&r) { // Myvector v1(v1); 자기 자신 대입시 실행x + if (m_capacity < r.m_capacity) { + delete[] data; + + m_size = r.m_size; + m_capacity = r.m_capacity; + data= new T[m_capacity]; + + } + for (int i = 0; i < r.m_size; i++) { + data[i] = r[i]; + } + } + + return *this; + } + //이동 대입 연산자 + MyVector& operator=(MyVector&& r) noexcept{ /* ... */ + if (this != &r) { + + delete[] data; + m_size = exchange(r.m_size, 0); + m_capacity = exchange(r.m_capacity, 0); + data = r.data; + + r.data = nullptr; + } + return *this; + } + void push_back(const T& n) { + + if (m_capacity <= m_size) { + m_capacity *= 2; //용량 늘리고 + + T* tmp = new T[m_capacity]; //용량만큼 새 메모리 할당 + for (int i = 0; i < m_size; i++) { + tmp[i] = data[i]; + } + delete[] data; //? 기존 data가 가리키는 부가메모리 해제후 + data = tmp; // tmp가 가리키는 동적 배열 가리키게 + } + //용량 넉넉하면 추가만 + data[m_size] = n; //맨 뒤에 데이터 추가 + m_size++; + } + + void pop_back(/* ... */) { + /* ... */ + m_size = m_size > 0 ? m_size - 1 : 0; + } + + /* return-type */ + T& operator[](size_t i) { /* ... */ + return data[i]; + } + + size_t size() const { + /* ... */ + return m_size; + } + T* begin() { + return data; //시작주소 + } + T* end() { + return data + m_size; // 포인터 주소연산 ,끝 주소(empty) + } +private: + T* data; + size_t m_size; + int m_capacity; + // Define other member variables if necessary +}; + +// Use case +int main() { + + { + MyVector v; + cout <<"초기 사이즈: "<< v.size() << '\n'; + v.push_back(1); // v.size() == 1 + v.push_back(2); // v.size() == 2 + cout<<"1,2 push후 사이즈: "< v2 = std::move(v); //이동생성자 호출 + for (auto i : v2) { + cout << i << ' '; + } + + } // v 소멸 + + + + return 0; +} From 8abf16501ee2a5bc8a91728d5fe4f8e662379c8f Mon Sep 17 00:00:00 2001 From: Chanik Jeong <78005321+chanik-s@users.noreply.github.com> Date: Fri, 15 Dec 2023 12:09:49 +0900 Subject: [PATCH 10/10] Update exercise_10.cpp --- submission/day2/exercise_10.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/submission/day2/exercise_10.cpp b/submission/day2/exercise_10.cpp index ee71d21..1039eec 100644 --- a/submission/day2/exercise_10.cpp +++ b/submission/day2/exercise_10.cpp @@ -92,6 +92,10 @@ class MyVector { T& operator[](size_t i) { /* ... */ return data[i]; } + //추가.. const 참조 객체 접근시 + const T& operator[](size_t i) const { + return data[i]; + } size_t size() const { /* ... */ @@ -139,7 +143,9 @@ int main() { for (auto i : v2) { cout << i << ' '; } - + cout<<'\n'; + const auto& vref = v2; + cout<