목록2024/03 (25)
그냥 게임개발자
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
이거 뭔지 아시는 분 백준하다가 음.. 이거 맞는데 왜 시간초과지..하면서 구글링하다가 이거 붙이면됨! 해서 붙이니까 ㄹㅇ 됐는데 왜 되는지 모르는 애들임. ㄹㅇ 3총사 뭐 암튼 흠흠 ios::sync_with_stdio(false); C와 C++ 표준 stream의 동기화를 비활성화하는 코드이다. 동기화가 활성화가 되어있을때는 C 스타일과 C++ 스타일의 입출력을 혼합해도 문제가 없다. 뭐 예를들어 printf, scanf와 cin, cout을 혼합하여 사용해도 문제가 없다는 소리이다. 하지만 위의 코드를 작성하게 되면 C와 C++은 혼합할 수 없는 대신에 C++ 스타일 코드만 사용하면 기존 동기화 과정에서 필요하던 시간이 절약되어 입출력속도가 빨라지는 효과를 볼 수 가 있다. 즉 알고리즘 문제를 풀 ..
순서와 상관 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)는 정의 단계에서 자신을 재참조하는 함수 전달되는 상태인 매개변수가 달라질 뿐 똑같은 일을 하는 함수 큰 문제를 작은 부분문제로 나누어서 풀 때 사용한다. 주의사항 반드시 기저사례를 써야 한다. 기저사례라는 것은 종료 조건을 말한다. 사이클이 있다면 쓰면 안된다. 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) { // 기..
#include using namespace std; int main() { string str = "hehe"; str += " enough!"; str.pop_back(); cout
C++은 매우 엄격하다 그러기에 매번 타입(type)을 설정해주어야 한다. 또한 매개변수의 수나 타입 등에 따라 함수를 다르게 인식한다 (overloading) 예를들어 function(int a, int b)와 function(int a)는 이름만 같지 다른 함수로 인식된다. 타입 여러가지가 있지만 자주 사용하는 것들만 써보겠다. void, char, string, bool, int, long long, double, unsigned long long 차근차근해보자. void : 반환 값 없음 #include using namespace std; int value = 1; void a() { value = 2; cout