Computer

    [백준][C++] 백준 시간 초과날 때

    std::ios::sync_with_stdio(false); std::cin.tie(NULL); 이 코드 쓰면 됨 다른 사람들 코드 볼때 맨날 이런 코드 있길래 뭐지...하고 무시했었는데 이거 하고 안하고 차이 엄청 나는듯 같은 코드인데 저 코드 넣고 안넣고의 차이...

    [백준][C++] 요세푸스 문제 0

    https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 큐를 이용하는 문제 비슷한 문제 계속 풀다보니 감이 잡혀서 쉽게 풀었다. 먼저 큐에 1부터 n까지의 숫자를 저장해둔 후, k-1번째 숫자까지 뒤로 push한 뒤 pop한다. 그런 뒤에 가장 앞에 오는 숫자가 k번째 숫자이므로 우리가 원하는 수열의 숫자가 된다. 따라서 따로 벡터나 배열에 옮겨담은 후 pop한다. 이 과정을 큐가 빌 때까지 반복 #include #include int main() { std::queue que; std::vector vec; int n, k; std:..

    [백준][C++] 1874 스택 수열

    https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 역시 스택을 사용하는 문제인데 처음에 딱 문제를 봤을 땐 어떻게 코드를 짜야할지 모르겠어서 좀 당황했다 풀고나서 다시 보면 쉽지만... 처음 풀 땐 내가 이 정도로 빡대가리였나 좀 고민할뻔 함 #include #include #include int main() { std::stack stack; std::vector..

    [백준][C++] 4949 균형잡힌 세상

    https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net 스택을 활용하는 문제 #include #include #include int main() { std::string str; std::stack stack; while (1) { std::getline(std::cin, str, '.'); //.을 만날 때까지 받아오기 std::cin.get(); //개행문자 지우기 str.append(1, '.'); if (str[0] == ..

    [C++] 예외 처리(1) - 예외 메커니즘과 스택 풀기

    안녕하세요, katte입니다. 이번 글에서는 예외의 기본적인 메커니즘에 대해 알아보도록 하겠습니다. 예외 처리는 예외를 발생시키는(던지는) throw, 특별한 예외가 발생할 수 있는 throw 블록, 뒤이어 나오는 한 개 이상의 catch 블록으로 이루어져 있습니다. 또한 발생되는 예외는 클래스형이 일반적입니다. 예외가 발생되면 함수는 종료되며, try catch 블록이 있는 함수를 만날 때까지 호출된 함수들의 연쇄를 거슬러 올라가게 됩니다. 이를 스택 풀기라고 합니다. 프로그램은 함수를 호출할 때, 스택을 사용합니다. 다른 함수를 호출한(calling) 함수 구문의 주소를 스택에 올리고, 호출된(called) 함수를 실행합니다. 이때 호출된 함수의 매개변수 리스트와 local 변수 역시 스택에 추가됩니..

    [C++] 템플릿 클래스만 쓰면 링크 에러가 나는 이유가 뭘까

    해결책은 간단 걍 헤더파일에 함수 정의까지 집어넣으면 됨

    [C++] 스마트 포인터 클래스

    안녕하세요, katte입니다. 이번 글에서는 스마트 포인터 클래스, auto_ptr, unique_ptr, shared_ptr에 대해서 정리하도록 하겠습니다. 포인터는 C와 C++의 강력한 도구이면서 동시에 고질적인 문제가 됩니다. 특히 동적 할당된 메모리를 참조하는 포인터는 메모리 누수의 문제를 떠안고 있죠. 이를 해결하기 위한 것이 스마트 포인터 클래스입니다. 스마트 포인터는 객체가 scope를 벗어나 소멸하게 될 때, 소멸자를 호출하는 것을 이용합니다. 스마트 포인터 클래스에는 힙에 할당된 주소를 저장할 포인터 멤버가 존재하고, 클래스의 객체가 소멸할 때 소멸자를 통해 delete를 호출하여 메모리를 해제합니다. 스마트 포인터에는 auto_ptr, unique_ptr, shared_ptr이 있으며,..

    [백준][알고리즘][C++] 2750 수 정렬하기, 버블 정렬, 삽입 정렬

    https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 1) 버블 정렬 알고리즘(Bubble sorting) 버블 정렬은 인접한 두 원소를 비교하여 자리를 교환해가는 알고리즘이다. 시간 복잡도는 O(n^2) (이중 for루프) #include #include using std::vector; int main() { int n; std::cin >> n; vector arr(n); for (int i = 0; i > ar..