백준 골드 3 5

[G3] 백준 14725번 개미굴 C++ 트라이, 문자열

리뷰 문자열을 트리 형태로 관리하여 효율적으로 저장, 출력하기 위한 트라이의 기본이 되는 문제https://www.acmicpc.net/problem/14725 전역 변수Trie : 문자열을 트리 형태로 저장하는 구조체, 맵을 통해 문자열을 key로, 하위 트라이를 value로 가진다. 함수1. insertvoid insert(Trie* node, const vector& foods) 문자열 트리의 현재 노드에 하위 노드를 삽입하는 함수현재 노드 정보와 추가해야할 음식들을 문자열 타입 벡터 매개변수로 받는다.우선 루트 노드 정보를 cur이라는 변수에 포인터를 참조하여 값을 별도로 저장해 준다.추가할 음식들을 탐색하면서 현재 루트 로드에 해당 음식이 존재하지 않으면 새로운 자식을 추가해 준다.만약 루트 로..

[G3] 백준 2812번 크게 만들기 C++ 스택, 문자열, 그리디 알고리즘

리뷰 수를 문자열로 변환하여 스택을 활용한 그리디 문제이다.https://www.acmicpc.net/problem/2812 전역 변수lst : 숫자를 저장할 문자열 변수n, k, cnt : 숫자의 길이 n, 지울 숫자의 개수 k, 지운 숫자를 체크할 변수 cnt 함수없음  문제풀이n, k, lst값을 순서대로 입력 받아주고, 스택으로 사용할 문자타입 벡터 s를 초기화 해준다.n번의 반복문을 개행하고, s가 비지 않았고, s의 back이 현재 수보다 작으며, cnt가 k보다 작다면 문자열을 제거한다.문자열이 제거된 후에는 cnt를 증가시켜서 k와 비교를 해주어야 한다.위 작업이 끝난 후에는 스택에 현재 숫자(문자)를 추가해 준다.최종적으로 스택에 저장되어 있는 숫자(문자)를 한개씩 출력해 주면 된다. (..

[G3] 백준 1516번 게임 개발 C++ 위상 정렬

리뷰 게임 상에서 각 건물이 지어질 수 있는 최소 시간을 구하는 문제 위상 정렬을 통해 쉽게 해결할 수 있다.https://www.acmicpc.net/problem/1516 문제 풀이건물의 개수 n과 각 건물의 건설 시간 t배열, 인접 리스트용 벡터 path를 전역 변수로 초기화 해준다.input 함수를 통해 n값을 입력 받고 1~n번째 건물의 건설 시간과 인접 리스트를 입력 받아준다.solution함수를 통해 각 건물의 건설 완료 시간을 구해줄 수 있다.각 건물의 건설 완료 시간 벡터 sum과 건물을 짓기위한 우선순위의 개수 벡터 cnt를 n + 1, 0값으로 초기화 한다.각 건물의 인접리스트를 순회하며 인접 리스트에 저장된 건물의 cnt를 1개씩 늘려준다.정수형 큐 q를 주비하고 cnt가 0인 건물..

[G3] 백준 1005번 ACM Craft C++ 위상 정렬

리뷰 위상 정렬을 통해 가중치가 있는 간선을 갖고 특정 노드의 최소값을 구하는 문제https://www.acmicpc.net/problem/1005 문제 풀이테스트 케이스의 개수 tc, 노드의 개수 n, 간선의 개수 m, 목표 노드 dest를 전역변수로 초기화 해준다.인접 리스트를 담을 정수형 벡터 path, 각 노드의 소요시간 정보 times의 크기를 n의 최대값으로 설정해 준다.init 함수를 통해 times 배열 초기화, path 백터를 초기화 해준다.input 함수를 통해 n, m값과 각 노드의 소요시간, 간선정보, 목표 노드를 입력 받는다.solution 함수를 통해 dest 노드가 건설이 완료 되기까지의 최소 시간을 출력해 준다.cnt, sum 벡터를 n + 1 크기로, 초기값은 0으로 초기화..

[G3] 백준 2252번 줄 세우기 C++ 위상 정렬

리뷰 위상 정렬의 가장 기본이 되는 문제https://www.acmicpc.net/problem/2252 문제 풀이n, m과 정수형 벡터 path를 n의 최대 크기인 32001로 전역 변수로 초기화 해준다.input 함수를 통해 n, m값을 받고 m개의 키 정보를 받아 path 벡터에 연결 리스트를 추가해 준다.solution 함수를 통해 위상 정렬을 수행해 준다, 정수형 벡터 cnt를 n + 1크기, 0으로 초기화 result를 초기화 해준다.1 ~ n을 탐색하여 i번째 path를 탐색하여 인접리스트에 저장된 노드의 cnt를 늘려준다.정수형 큐 q를 초기화 하고 1 ~ n을 탐색하여 만약 cnt가 0인 키 정보가 있다면 큐에 추가해 준다.큐가 빌때까지 while 루프를 돌며 현재 키를 result에 추..

728x90