
Q4. static 멤버 변수를 사용하는 이유는?
Q5. 싱글톤의 단점으로 지적되는 것은?
코드 Q5. GameManager::instance를 클래스 밖에서 nullptr로 초기화해주지 않으면 어떻게 되는가?
Q2. 상속 대신 데코레이터를 쓰는 이유는?
Q3. 데코레이터 클래스는 왜 Weapon을 상속받으면서 동시에 Weapon멤버 변수를 가질까?
Q5. 데코레이터 패턴의 단점
Q1. 옵저버 패턴은 주로 어떤 관계를 해결하기 위해 사용하는가?
Q3. 옵저버 패턴의 장점은
int gcd(int a, int b){
while (b!=0){
int tmp = b;
b = a % b;
a = tmp;
}
return a;
}
long long lcm(int a, int b){
return (long long)a*b / gcd(a, b);
}
#include <numeric>
int gcd_result = std::gcd(a, b);
int lcm_result = std::lcm(a, b);
별거는 아닌데 int형이 넘을거같으면 long long을 사용하도록 하자 int의 범위 넘는거 계산안하고 계속 쓰다가 오류난적이 많음
오후에 컨디션이 쏘배드라서 알고리즘 풀었다.
예전에 풀던것들을 C++로 풀어보니까 C++에 좀 익숙해지기도 한거같고, 확실히 속도가 빨라서 좋다.
string, vector, queue, map, set 등등 메서드 자주까먹는데 날잡고 한번 외워야 될듯