목록전체 글 (225)
그냥 게임개발자
 조합(Combination)
      
      
        조합(Combination)
        조합이란? 순열 글을 포스팅 할 때 순서있는 건 순열 순서 상관 없이 조합 이라고 했다. 조합에는 순서가 없다. 그저 몇명을 뽑아서 갈 것인가를 쓸 때 조합을 쓴다. 순서따윈 상관없고 오로지 몇명을 '다양하게'뽑을 때 사용하는 것 공식을 먼저 보자 예를 들어 5개 중에 3개를 순서 상관없이 뽑는다면 공식에 사용되는 건 이렇다 5C3 그럼 결국 이것을 대입해보면 5! / 3!(5-3)!이다. 그럼 결국 풀어서 설명하자면 5 * 4 * 3 * 2 * 1 --------------------- 3 * 2 * 1 * 2 * 1 이렇게 표현이 되겠다. 그렇다면 5 * 4 * 3 * 2 * 1 --------------------- 3 * 2 * 1 * 2 * 1 뺄 것들을 빼면 5 * 4 / 2가 되어 20 / ..
 순열 - 재귀함수로 만드는 순열
      
      
        순열 - 재귀함수로 만드는 순열
        #include #include #include int main() { vector v; for (int i = 1; i
string은 revers()라는 메서드를 지원하지 않는다. 문자열을 거꾸로 뒤집고 싶으면 STL에서 지원하는 함수인 reverse()를 쓰면 된다. void reverse (BindirectionalIterator first, BidrectionalIterator last); reverse() 함수는 void 타입으로 아무것도 반환하지 않는다. 다만 원본 문자열을 바꿔버린다. 다음 코드처럼 구축이 가능하다. #include using namespace std; int main() { string a = "I have aches and pains all over"; reverse(a.begin(), a.end()); cout
지금 자야 내일 출근이다. 피곤하니 바로본론이다. 만약 숫자로 된 문자에서 ++증감연산자를 통해 1을 더해준다면? ASCII코드에서 +1한 값이 된다. #include using namespace std; typedef long long ll; int main() { ios::sync_with_studio(false); cin.tie(NULL); string s = "123"; s[0]++; cout
 ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
      
      
        ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
        이거 뭔지 아시는 분 백준하다가 음.. 이거 맞는데 왜 시간초과지..하면서 구글링하다가 이거 붙이면됨! 해서 붙이니까 ㄹㅇ 됐는데 왜 되는지 모르는 애들임. ㄹㅇ 3총사 뭐 암튼 흠흠 ios::sync_with_stdio(false); C와 C++ 표준 stream의 동기화를 비활성화하는 코드이다. 동기화가 활성화가 되어있을때는 C 스타일과 C++ 스타일의 입출력을 혼합해도 문제가 없다. 뭐 예를들어 printf, scanf와 cin, cout을 혼합하여 사용해도 문제가 없다는 소리이다. 하지만 위의 코드를 작성하게 되면 C와 C++은 혼합할 수 없는 대신에 C++ 스타일 코드만 사용하면 기존 동기화 과정에서 필요하던 시간이 절약되어 입출력속도가 빨라지는 효과를 볼 수 가 있다. 즉 알고리즘 문제를 풀 ..
 순열(Permutation)
      
      
        순열(Permutation)
        순서와 상관 O 뽑는다면 >> 순열 순서와 상관 X 뽑는다면 >> 조합 순서를 재배치하여 or 한 순서의 경우 max값을 어쩌구저쩌구 >> 순열 ex1) [1, 2, 3] 3개를 뽑으라면 [1, 2, 3] => 조합(순서 상관 없음) [1, 2, 3] 1번 부터뽑고 2번부터 뽑고 3번부터 뽑는다. [1, 2, 3], [2, 1, 3], [1, 3, 2], [2, 3, 1], [3, 1, 2], [3, 2, 1] 총 6개 => 순열(순서 상관있음) ex2) [1, 2, 3] 2개를 순서 상관 없이 뽑으면 => [1, 2], [2, 3], [1, 3] 3개 [1, 2, 3] 2개를 순서 상관 있이 뽑으면 => [1, 2], [2, 1], [1, 3], [3, 1], [2, 3], [3, 2] 6개 그럼 이것..
 재귀함수(Recursion)
      
      
        재귀함수(Recursion)
        재귀함수 재귀함수(Recursion)는 정의 단계에서 자신을 재참조하는 함수 전달되는 상태인 매개변수가 달라질 뿐 똑같은 일을 하는 함수 큰 문제를 작은 부분문제로 나누어서 풀 때 사용한다. 주의사항 반드시 기저사례를 써야 한다. 기저사례라는 것은 종료 조건을 말한다. 사이클이 있다면 쓰면 안된다. ex) func(a) 가 func(b)를 호출한 뒤 func(b)가 다시 func(a)를 호출하는 것 반복문으로 풀 수 있다면 반복문으로 푸는 것이 맞다. 예시 코드들 #include using namespace std; int fact(int n) { // 기저사례 if (n == 1 || n == 0) return 1; return n * fact(n - 1); } int fibo(int n) { // 기..
