본문 바로가기

분류 전체보기93

[0531] 알고리즘 이걸 알고리즘이라 할 수 있나...? 그냥 백준에서 푼 간단한 문제... 2798. 블랙잭 그냥 브루트포스 문제... 중간에 이상한 곳에서 실수해서 삽질 좀 했는데 아무튼... #include int main() { int n, m; int sum = 0, max = 0; std::cin >> n; std::cin >> m; int cards[n]; for (int i = 0; i > cards[i]; } for (int i = 0; i < n; i++) { sum = 0; if (cards[i] < m) { sum += cards[i]; } else continue; for (int j = i + 1; j < n; j++) { if (sum + cards[j] <.. 2021. 5. 31.
[0530] 알고리즘 10844. 쉬운 계단 수 어제 푼 문제와 같은 다이내믹 프로그래밍 문제. 자릿수를 N이라고 할 때, N자리의 계단 수는 N-1자리의 각 계단 수의 끝 숫자의 -1, +1된 수를 붙이면 나온다는 아이디어는 대충 떠올랐는데, 이걸 코드로 나타내는데 애먹고 채점할 땐 예상치 못한 무언가에 또 애먹었었다. 과제로 수행했던 다이내믹 프로그래밍 문제는 Top-down방식이었어서 재귀를 써야하나 싶었는데, 도대체 어떻게 재귀를 쓰나에서 시작해서 생각을 거치다 다이내믹은 반복문을 사용하는 Bottom-up이라는 방식이 있었음을 떠올렸다... 어렴풋이 배우고 안 써먹으면 이렇게 얼레벌레 알게 되는 것 같다. 코드는 아래와 같았음. #include int main() { int n; long long sum = 0; s.. 2021. 5. 30.
[0529] 알고리즘 어쩌다 보니 알고리즘 공부를 하게 되어서(?) 푼 문제 있음 백업 겸 올리기로 한다... 2156. 포도주 시식 과제로도 한 번 받은 적 있는 거라서 복습 겸 코딩 재활겸(...) 과제의 추억을 떠올리며 진행. 다이내믹 프로그래밍을 사용하는 문제였고, 과제로 받았을 땐 Top-down 형식으로 할 것이 조건이었기 때문에 이번에도 그렇게 했다. 과제로 했을 때는 수학을 하도 못해서 손으로 직접 경우의 수를 따져가며(...) 어떤 조합으로 해가 나올 수 있는지 하나하나 따지면서 풀었었음. #include int divideGlass(int num, int* glasses); int divideGlassAux(int num, int* m, int* glasses); int compareMax(int a, in.. 2021. 5. 29.
C++ 5일차 (※ 개인 정리를 위한 것이므로, 이해한 내용 생략다수 + 불친절함 주의) string 클래스 기존 C에서 문자열을 다루는 것은 어려웠다. 두 문자열이 같은지를 확인하기 위해서도 별도의 함수를 사용해야 했다(strcmp). 그러나 C++에서 제공하는 표준 string 클래스를 사용하면 이러한 함수의 사용 없이 문자열을 편리하게 이용할 수 있다. #include #include int main() { std::string s = "cake"; std::cout 2021. 5. 13.
C++ 4일차 하루 공부 양이 뒤죽박죽이라 어느 정도 내용이 쌓이면 적으려고 하고 있다. (※ 개인 정리를 위한 것이므로, 이해한 내용 생략다수 + 불친절함 주의) explicit 'explicit' 이란 '분명한, 명쾌한' 등의 의미를 갖는 단어이다. 이 친구가 하는 역할을 정리하려면, '명시적 변환'과 '암시적 변환'에 대해 대강이나마 정리할 필요가 있다. C++의 컴파일러는 똑똑하다. 그렇기 때문에 프로그래머가 짠 내용을 참고해서 자기 나름대로 생각하고 사용자가 편하도록 알아서 처리할 때가 있다. 변환 또한 그러하다. class CustomString { private: char * str; public: CustomString(const char* string); /*...*/ }; /* ... */ void .. 2021. 5. 7.
C++ 3일차 주말 내내 코딩이 너무 하기 싫어서 반쯤 놀아댄 결과 별로 공부한 내용이 없다. 그러다 최근 글을 봤는데 글을 무슨 쓰다 말았어서 OTL... 못 쓴 내용까지 복습하면서 다 정리할 것. (※ 개인 정리를 위한 것이므로, 이해한 내용 생략다수 + 불친절함 주의) 소멸자 (Destructor) 소멸자란 대충 생성자와 반대의 작업을 수행하는 함수라고 볼 수 있겠다. 그렇기에 생성자가 객체를 생성하는 데 사용되는 함수라면, 소멸자는 객체가 소멸될 때 호출되는 함수이다. 소멸자가 필요한 이유는 다음과 같다. #include #include class Test { int num; char * word; public: Test(int n, char * name); }; Test::Test(int n, char * n.. 2021. 5. 3.