💻 OnlineJudge/Baekjoon

    [백준 / BOJ] C++ 1766 문제집

    [백준 / BOJ] C++ 1766 문제집

    https://www.acmicpc.net/problem/1766 1766번: 문제집 첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주 www.acmicpc.net 풀이 위상 정렬이라는 개념도 제대로 모르고있었던 위상정렬 문제이다... 그래서 공부하며 포스팅하고 문제를 다시 풀어보았다. 입력란에 첫줄은 문제의 갯수와 조건의 갯수를 나타내고, 두번째줄 세번째줄을 보면 먼저 풀어야하는 문제 조건을 나타낸다. => (4 - 2), (3 - 1) degree 배열에 해당 번호에 들어오는 선의 수를 저장하고 2차원 벡터에 간선의 방향을 ..

    [백준 / BOJ] C++ 1655 가운데를 말해요

    [백준 / BOJ] C++ 1655 가운데를 말해요

    https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 풀이 우선순위 큐를 vector에 넣은 후 vector size에 따라 달라지는 값으로 문제를 풀었으나.. 시간초과 for문으로 vector에 입력하는 부분에서 시간초과가 나는것 같습니다. 그래서 priority_queue를 max,min 두개를 만들어 주어 중간값을 구하는 방식을 사용했습니다. 중간 값 구하기 알고리즘 1. 최대 힙의 크기는 최소 힙의 크기와 같거나, 하나 더 크..

    [백준 / BOJ] C++ 11286 절대값 힙

    [백준 / BOJ] C++ 11286 절대값 힙

    https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 풀이 우선순위 큐의 greater의 자료형을 살펴보면 struct인 것을 알 수 있습니다. 절댓값을 구하는 operator를 struct으로 만들어 쉽게 해결할 수 있습니다. Code #include #include #include using namespace std; struct AbsGreater { bool operator()(int a, int b) { if (abs(..

    [백준 / BOJ] C++ 1927 최소 힙

    [백준 / BOJ] C++ 1927 최소 힙

    https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 풀이 우선순위 큐에 greater를 이용하여 오름차순으로 정렬한다. 이후, N만큼 반복시키며 입력된 값을 확인한다. 입력된 값이 0이며, queue가 비어있으면 0을 출력한다. Code #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cou..

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

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

    백준 - 단계별로 풀어보기 [11866] https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 풀이 입력받은 값 K만큼 해당 queue의 값을 출력만 하면 되는 간단한 문제입니다. Code #include #include using namespace std; queue _queue; int _cnt = 1; int main() { int N, K; cin >> N >> K; for (int i = 1; i

    [백준 / BOJ] C++ 2164 카드 2

    [백준 / BOJ] C++ 2164 카드 2

    백준 - 단계별로 풀어보기 [2164] https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net Code #include #include using namespace std; int main() { queue _queue; int N; cin >> N; for (int i = 1; i

    [백준 / BOJ] C++ 18258 큐 2

    [백준 / BOJ] C++ 18258 큐 2

    백준 - 단계별로 풀어보기 [18258] https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 Queue의 기본적인 문제입니다. 해당하는 문자열을 검색하여 해당 기능을 실행시키면 되는 간단한 문제인데요, 문제를 풀고 나니 시간초과가 떠서 검색해보았습니다. C++ 에선 가급적 행 변경을 할때 endl 보단 '\n'이 연산속도가 더 빠르다고합니다.상단에 연산속도 향상을 위한 코드를 적어 빠르게 처리를 해주어 문제를 풀었습니..

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

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

    백준 - 단계별로 풀어보기 [4949] https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net 풀이 자료구조에서 스택의 기본적인 괄호 예제입니다. 입력받은 문자열에서 괄호만 찾아서 짝이 맞는지 확인 후 출력하는 간단한 문제입니다. Code #include #include #include using namespace std; int main() { while (true) { stack _stack; bool result = true..