티스토리에 대한 개인적인 생각 최근에 있었던 2가지 Issue 최근 한 달 동안 과제와 실험 때문에 바쁘게 살아서 티스토리 블로그를 거의 들어가지 못했었다. 기말고사와 기말 프로젝트를 끝내고 오랜만에 티스토리에 들어가니 그 동안 2가지 정도의 큰 이슈가 있었다. 먼저 첫 번째 이슈는 이제 더 이상 과거글 발행이 불가능해졌다는 사실이었다.물론 나의 경우에는 이 기능을 거의 사용하지 않았기 때문에 아무런 문제가 없었다. 다만 앞으로 작성을 해야 할 워게임 풀이를 번호 순서대로 작성을 해야 한다는 점이 있긴 하지만... 물론 번호 순서대로 풀이를 정리하지 않더라도 되긴 하겠지만 그래도 리스트로 볼 때 정렬이 되어 있어야 정리가 된 기분이 들기 때문이다. 두 번째 이슈는 위 기능으로 변경된 이후로 RSS 주소가 변경이 되어 네이버와 같은 검.. Sublime text shortcuts and tips https://www.smashingmagazine.com/2016/06/shortcuts-and-tips-for-improving-your-productivity-with-sublime-text/ 이 글을 통해서 Plain Text라는 좋은 플러그인이 있다라는 것과 좋은 기능을 하는 단축키가 몇 가지 더 존재하는 것(특히 Sorting 기능...)을 알 수 있었다. complex class 구현 Complex Class C++에서 제공하는 연산자 overloading을 이용해서 복소수를 클래스로 구현해보았다.복소수 클래스의 멤버 변수들을 외부에서 변경하지 못하게 하기 위해서 private으로 선언하였으며, 멤버 함수는 사칙 연산 및 입출력에 대한 내용에 대해서만 구현을 하였다. #ifndef COMPLEX_H #define COMPLEX_H #include using namespace std; class Complex{ private: double real; double imag; public: Complex(double real = 0, double imag = 0) : real(real), imag(imag) {} friend Complex operator+(const Complex& c1,.. 대소문자 변경하기 문자 하나를 입력받았을 때 그 문자를 대문자로 변경하는 함수와, 소문자로 변경하는 함수를 구현하는 방법은 ascii code를 이용하면 된다. 쉽게 사용할 수 있는 방법은 대문자와 소문자의 ascii code의 차이가 32만큼 난다는 사실을 이용한다는 것이다.즉 대문자인 경우에는 32를 더해주면 소문자로 바꿀 수 있고, 소문자인 경우에는 32를 빼주면 대문자로 바꿀 수 있다. 이것을 C++ 문법으로 표현하면 아래와 같다. char to_lower(char ch){ if(ch >= 'A' && ch = 'a' && ch = 'A' && ch = 'a' && ch Merge Sort 구현 C++를 이용하여 Merge Sort를 구현한 소스코드이다. Merge를 할 때 원래는 마지막인지 체크를 하고 값을 넣는 과정이 있어야 하지만, 이렇게 하면 코드가 복잡해지기 때문에 합치려는 배열의 사이즈를 1씩 증가시켜서 마지막에 INT형 범위의 최댓값을 넣는 방법으로 구현하였다. #include using namespace std; #define INTMAX 2147483647 void mergeSort(int[], int, int); void merge(int[], int, int, int); int main(){ int *arr, N; cin >> N; arr = new int[N]; for (int i = 0; i > arr[i]; mergeSort(arr, 0, N .. Tistory 취약점??? 보호되어 있는 글입니다. 2.1 Recursion에 대한 이해 앞선 내용에서는 Maximum Range Sum을 구하는 함수를 구현하고 거기에서 중복되는 연산부분을 없애는 방식으로 수행 속도를 향상시켰다. 이것을 하는데 있어서는 아무런 사전 지식이 없어도 생각을 해본다면 Live하게 짤 수 있는 알고리즘이었다. 이번에는 Recursion이 무엇인지에 대해 살펴보도록 하겠다.Recursion을 한국말로 번역을 하자면 '반복'이라는 뜻을 가지고 있다. 즉 Recursive function은 같은 함수가 반복해서 여러 번 불린다는 뜻을 의미한다. Recursive function을 이용해서 문제를 해결하기 위해서는 기본적으로 Divide & Conquer 전략을 사용한다. 즉, 큰 문제가 있다면 그것을 작은 부분 문제로 쪼개서 해결한 다음 그 결과를 이용해서 큰 문제를 .. *없이 두 정수 곱하기 모든 컴퓨터 언어에서는 곱하기 연산을 기본적으로 제공해주고 있다. 그런데 만약 '*'가 막혀 있다면 어떻게 계산을 할 수 있을까? C++에서는 정수형 데이터에 대해서 곱하기와 비슷한 연산자인 비트연산자를 제공해주고 있다. 그래서 이것을 이용하면 '*'없이 곱하기를 구현할 수 있다. (다만 매우 비효율적이다..ㅋㅋㅋㅋㅋㅋ 그냥 단순히 비트연산자를 다루는 방법을 터득한다고 생각하고 진행하자. 단순히 '*'문자가 필터링이 되어 있다면 어셈블리로 작성하는 것이 속도 상으로 더 나을수도 있겠다.) int multiply(int a, int b){ int result = 0; int tmp = 0; int sign = 0; // b의 음수여부 if(b .. 이전 1 ··· 7 8 9 10 11 12 13 ··· 33 다음