Algorithm 68

[알고 스터디] 4. 그래프(Graph)와 탐색(Search)

4. Graph (그래프) 그래프는 연결되어있는 원소 간의 관계를 표현하는 자료구조다! - 연결할 객체인 정점(Vertex)와 객체를 연결하는 간선(Edge)의 집합으로 구성 - 그래프를 나타내는 G = (V, E)로 정의 4. 1 그래프의 종류에는 무엇이 있을까? (1) 무방향 그래프 (Undirected Graph): 두 정점을 연걸하는 간선에 방향이 없는 그래프 - 무방향 그래프는 방향이 없어서 정점 $ V_I $와 $V_j$를 연결하는 간선을 ($ V_I $, $V_j$)으로 표현하는데, 둘이 같은 간선임 - G = {존재하는 모든 노드}, E(G) = {(정점1, 정점2), ... 등 존재하는 모든 간선} (2) 방향 그래프 (Directed Graph): 간선에 방향이 있는 그래프 - 방향이 ..

Algorithm/STUDY 2023.08.05

[알고 스터디] 3. 트리(Tree) - 2606

https://www.acmicpc.net/problem/2606 문제 - 실3 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 ..

Algorithm/STUDY 2023.08.03

[알고 스터디] 3. 트리(Tree) - 11725

문제 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 출력 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. 예제 입력 1 복사 7 1 6 6 3 3 5 4 1 2 4 4 7 예제 출력 1 복사 4 6 1 3 1 4 예제 입력 2 복사 12 1 2 1 3 2 4 3 5 3 6 4 7 4 8 5 9 5 10 6 11 6 12 예제 출력 2 복사 1 1 2 3 3 4 4 5 5 6 6 일단,, 내가 트리로 문제를 제대로 풀어보려는게 처음이라 구현이랑 접..

Algorithm/STUDY 2023.08.03

[알고 스터디] 2. 큐(Queue) - 11286

절댓값 힙 - 실버1 문제 절댓값 힙은 다음과 같은 연산을 지원하는 자료구조이다. 배열에 정수 x (x ≠ 0)를 넣는다. 배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 입력 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 절댓값이 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 정수는 -231보다 크고, 231보다 작다. 출력 입력..

Algorithm/STUDY 2023.07.27

[알고 스터디] 2. 큐(Queue) - 15903

카드합체놀이 - 🥈1 문제 석환이는 아기다. 아기 석환이는 자연수가 쓰여져있는 카드를 갖고 다양한 놀이를 하며 노는 것을 좋아한다. 오늘 아기 석환이는 무슨 놀이를 하고 있을까? 바로 카드 합체 놀이이다! 아기 석환이는 자연수가 쓰여진 카드를 n장 갖고 있다. 처음에 i번 카드엔 ai가 쓰여있다. 카드 합체 놀이는 이 카드들을 합체하며 노는 놀이이다. 카드 합체는 다음과 같은 과정으로 이루어진다. x번 카드와 y번 카드를 골라 그 두 장에 쓰여진 수를 더한 값을 계산한다. (x ≠ y) 계산한 값을 x번 카드와 y번 카드 두 장 모두에 덮어 쓴다. 이 카드 합체를 총 m번 하면 놀이가 끝난다. m번의 합체를 모두 끝낸 뒤, n장의 카드에 쓰여있는 수를 모두 더한 값이 이 놀이의 점수가 된다. 이 점수를 ..

Algorithm/STUDY 2023.07.24

[알고 스터디] 2. 큐(Queue) - 5430

[BOJ] 5430 AC - 골5 문제 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 수를 버리는 함수이다. 배열의 초기값과 수행할 함수가 주어졌을 때, 최종 결과를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는..

Algorithm/STUDY 2023.07.12

[알고 스터디] 2. 큐(Queue) - 14713

[BOJ] 앵무새 - 실2 문제 자가용 비행기를 타고 세계 일주를 하던 pps789와 cseteram은 어느 날 엔진 고장으로 인해 이름 모를 섬에 불시착하게 된다. 그들은 이 섬을 탐험하는 도중 아주 신기한 사실을 알게 되었는데, 바로 이 섬에 사는 앵무새들은 놀라울 정도로 인간의 말을 흉내 내는 데 뛰어나다는 것이다. 그들은 서로 떨어져 섬을 탐험하기로 하였으며, 필요하다면 앵무새를 이용해 서로에게 연락하기로 약속하였다. 1개월 후, pps789는 섬의 비밀을 밝힐 결정적인 증거를 찾게 된다. 그는 이 세기의 대발견을 cseteram에게 공유하고자 하였으나, 그의 발견은 방대하여 앵무새 한 마리가 기억하기에는 너무 많은 양이었다. 그렇기 에 pps789는 앵무새 한 마리 대신 앵무새 N마리를 이용하여..

Algorithm/STUDY 2023.07.11

[알고 스터디] 2. 큐(Queue)

2. Queue(큐) 앞서 설명했던 Stack과는 반대되는 개념의 선형 자료구조! 먼저 들어간 자료가 먼저 나오는 선입선출, FIFO(First In First Out)의 특성을 가진당. 아마 편의점 알바하면 선입선출 이라는 말을 겁나 많이 듣지않을까 싶다 ㅋㅋ 물건은 자고로 FIFO긴하지 ㄷㄷ ㅋㅋ 2.1 그래서 Queue가 자세히 뭔데! 여기서는 스택과 다르게 들어오는 곳을 뒤, Rear (리어)라고 하고 item이 들어온다. 들어오면서 앞, Front(프론트) 방향으로 쌓이고, 나갈때는 Front로 들어온 순서대로 나간다! 어떻게 보면 사람에게 가장 직관적인 방법이랄까?ㅎㅎ,, Queue의 의미가 영어로 기다리다, 대기행렬 이런뜻이라고 한당. 2.2 난 피포(FIFO)아냐,, 우선순위 큐! 일반적인..

Algorithm/STUDY 2023.07.06

[알고 스터디] 1. 스택(Stack) - 2812

백준 2812번 - 크게 만들기 - 골3 문제 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ K < N ≤ 500,000) 둘째 줄에 N자리 숫자가 주어진다. 이 수는 0으로 시작하지 않는다. 출력 입력으로 주어진 숫자에서 K개를 지웠을 때 얻을 수 있는 가장 큰 수를 출력한다. 예제 입력 1 4 2 1924 예제 출력 1 94 예제 입력 2 7 3 1231234 예제 출력 2 3234 예제 입력 3 10 4 4177252841 예제 출력 3 775841 [풀이] 문제도 간결하고 뭔가 깔쌈하고 흥미로워 보여서 내가 추천한 문제이당! 근데 스터디원들이 10분동안 생각하면서 접근방식 나눠보니까 ..

Algorithm/STUDY 2023.07.05

[알고 스터디] 1. 스택(Stack) - 17162

가희의 수열놀이 (samll) - 골4 문제 chogahui는 수열 arr을 이용해 나머지 놀이를 하고 있습니다. 조가희는 수열에 다음과 같은 연산을 할 수 있습니다. 수열 arr의 맨 뒤에 num을 추가합니다. 수열 arr의 맨 뒤에 있는 원소를 제거합니다. chogahui가 물어보는 질문은 다음과 같습니다. 수열 arr의 맨 뒤에서부터 최소 몇 개의 수를 선택해야, 이들을 mod로 나누었을 때 나머지가 0, ... , mod-1인 경우가 최소 한 번 이상 나타나는가? 입력 첫 번째 줄에는 쿼리의 수를 의미하는 정수 Q와 나누는 정수 mod 가 공백으로 구분되어 주어집니다. (1 ≤ Q ≤ 2×105, 1 ≤ mod ≤ 102) 이후 Q개의 줄에 걸쳐서, 다음 세 종류의 쿼리 중 하나가 주어집니다. 이..

Algorithm/STUDY 2023.07.03