반응형

C++ 354

[P4] 백준 3653번 영화 수집 C++ 세그먼트 트리

리뷰 업데이트를 통해 세그먼트 트리를 확장하고 구간합을 구하는 문제https://www.acmicpc.net/problem/3653 전역 변수tc, n, m : 테스트 케이스의 개수 tc, 각 테케의 DVD의 수 n, 각 테케의 쿼리의 수 mlst : DVD의 초기정보와 인덱스 정부를 담은 정수형 벡터tree : 세그먼트 트리의 구간합 정보를 담은 정수형 벡터 함수1. updatevoid update(int node, int s, int e, int idx, int val) 세그먼트 트리의 특정 인덱스의 값을 교체하고 구간합을 업데이트 하는 함수val은 1과 -1이 올 것이며 음수가 올 경우는 주어지지 않는다. 2. queryint query(int node, int s, int e, int L, int..

[P5] 백준 7578번 공장 C++ 세그먼트 트리

리뷰 서로 교차하는 케이블 쌍의 개수를 구하고 출력하는 문제https://www.acmicpc.net/problem/7578 전역 변수MAX_N : 입력 되는 노드의 최대 개수를 의미하는 정수형 상수 변수 500001로 초기화 해준다.nodes : 입력 받은 노드의 정보를 저장할 정수형 배열, MAX_N크기로 설정한다.index : 교차하기 위한 노드 정보를 저장할 정수형 배열, index를 값으로, value를 순서로 저장한다, MAX_N * 2크기tree : 세그먼트 트리 정보를 저장할 정수형 배열, MAX_N * 4크기로 설정한다.n, ans : 노드의 개수를 저장할 변수 n, 정답을 저장하고 출력할 변수 ans 함수1. updatevoid update(ll node, ll s, ll e, ll i..

[G3] 백준 2533번 사회망 서비스(SNS) C++ 트리에서의 다이나믹 프로그래밍

리뷰 트리에서의 다이나믹 프로그래밍을 활용하여 얼리어답터의 최소 갯수를 구하는 문제https://www.acmicpc.net/problem/2533 전역 변수n : 노드의 개수lst : 인접 리스트를 통해 노드간 양방향 간선 정보를 저장할 2차원 정수형 벡터dp : 각 노드가 얼리어답터일때와 아닐때의 정보를 저장할 배열v : dfs탐색 시 노드의 방문 정보를 저장할 배열 함수1. dfsvoid dfs(int cn) 깊이 우선 탐색을 통해 얼리어답터의 개수를 재귀적으로 구해줄 함수현재 노드를 매개변수를 통해 전달받고, 각 인접리스트의 노드를 매개변수로 전달해 준다.함수 실행 시 현재 노드가 얼리어답터일때는 1, 아닐때는 0으로 초기값을 세팅해 준다.인접리스트를 순회하고 자식 노드가 방문하지 않았을 경우 우..

[D3] SWEA 22683번 나무 베기 C++ 다익스트라, 최단 경로

리뷰 백준의 벽부수고 이동하기 시리즈와 유사한 문제였다. SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com  전역 변수tc, n, k : 테스크 케이스의 개수 tc, 각 테케당 한 변의 개수 n, 각 테케당 나무를 벨 수 있는 횟수 ksx, sy, ex, ey : 각 테스트 케이스당 시작 및 도착 지점의 x, y좌표lst : 문자열로 이루어진 맵 정보, 최대 10 * 10의 크기이다.dx, dy : 상하좌우 이동시 사용할 방향 배열, 상우하좌 순으로 인덱싱이 되어 있다.Pos : 탐색을 할때 현재 정보에 대한 정보를 담을 구조체, 현재 위치, 방향, 자른 나무의 개수, 시간 정보가 있다. 우선순위 큐를 사용해 주어야..

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

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

[G3] 백준 17299번 오등큰수 C++ 스택

리뷰 최대 크기는 상관없으나 원소가 100만까지 들어올 수 있으므로 배열크기를 100만 이상으로 해야한다. ㅠㅠhttps://www.acmicpc.net/problem/17299 전역 변수n : 입력되는 수열의 길이lst : 입력된 수열이 저장될 배열, 크기는 100만보다 크게 해준다.v : 입력된 수의 개수를 저장할 배열, 크기는 100만보다 크게 해주던가 해시맵을 사용해 주자ans : 정답을 저장하고 출력할 배열, 크기는 100만보다 크게 해준다. 함수없음  문제풀이n값을 입력 받고 길이 n의 수열 정보를 lst배열에 입력받아준다, 입력 받은 수의 개수를 v배열을 통해 증가시킨다.빈 정수형 벡터 s를 초기화 해준다. 해당 벡터를 스택처럼 사용할 것이다.수열의 뒤에서부터 순회를하며 스택이 비지 않았을때..

[D2] SWEA 22654번 차윤이의 RC카 C++ 구현, 시뮬레이션

리뷰 RC카의 움직임을 각 쿼리문으로 제어하고 최종 위치가 목적지인지 확인하는 문제 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 전역변수tc : 테스트 케이스의 개수n, q : 맵의 한 변이 길이 n, RC카를 조종하는 횟수의 개수 qsx, sy, dx, dy : 시작 위치와 도착 위치의 x, y 좌표lst : 맵 정보, 문자열로 입력받으며 최대 5 * 5의 크기dx, dy : 상하좌우로 이동할 방향 배열, 0번 인덱스부터 3번인덱스까지 북동남서 방향으로 세팅한다. 함수1. inputvoid input() 한 변의 개수를 입력 받고 n * n의 맵 정보를 입력 받아준다.위치가 X일 경우 시작 위치의 좌표를 sx..

[S1] 백준 11403번 경로 찾기 C++ 플로이드 와샬, 최단 경로

리뷰 플로이드 와샬을 사용해 풀 수 있는 기초적인 문제https://www.acmicpc.net/problem/11403 전역 변수n : 인접 행렬의 한 변의 길이(노드의 개수) 함수없음  문제풀이n값을 입력 받고 거리를 저장할 2차원 정수 벡터 dist를 n * n크기로 초기화 한다.dist에 인접 행렬을 입력 받아준다, 이때 0이 입력 되었다면 1보다 큰 적절한 수로 변환해 준다.플로이드 와샬을 통해 3중  for문을 통해 갈 수 있으면서 1보다 큰 간선을 찾아 1로 변경해 준다.모든 작업을 마친 후 dist벡터 정보를 출력해 준다, 이때 1보다 큰 수라면 0으로 변환해서 출력해 주면 된다. 참고 사항정점 i에서 j로 가는 길이가 양수인 경로가 있으면 i번째 줄의 j번째 숫자를 1로, 없으면 0으로 ..

[G4] 백준 11404번 플로이드 C++ 플로이드 와샬, 최단 경로

리뷰 노드의 개수가 적을 경우 고려할 수 있는 최단 경로를 구하는 방법인 플로이드 와샬을 사용하는 문제https://www.acmicpc.net/problem/11404 전역 변수MAX_D : 거리의 최대값 보다 크게 설정해줄 정수형 상수 변수, 10만 * 10만 이상으로 초기화 해주면 된다.n, m : 노드의 개수 n, 간선의 개수 mlst : 인접 리스트를 행렬으로 변환할 정수형 2차 배열, 행, 열을 노드의 최대 개수인 100보다 크게 설정해 준다.path : 인접 리스트를 저장할 벡터, 다음 노드, 간선 두개를 모두 저장해야 한다.dist : 특정 노드끼리의 거리를 저장할 정수형 2차 벡터 함수1. inputvoid input() 노드와 간선의 개수를 입력 받고 인접리스트와 인접 행렬을 초기화 해..

[G5] 백준 1759번 암호 만들기 C++ 백트래킹

리뷰 최소 한 개의 모음과 최소 두 개의 자음으로 구성된 정렬된 문자열의 암호를 찾는 문제https://www.acmicpc.net/problem/1759 전역 변수l, c : 암호의 길이 l, 암호로 사용했을 법한 문자의 종류 clst : 암호로 사용했을 법한 문자를 저장할 문자 배열, 크기는 16으로 초기화 한다.v : 방문 처리를 체크할 용도의 정수형 배열, 크기는 16으로 초기화 한다. 함수1. btvoid bt(int level, string cur, int ja, int mo) 백트래킹을 통해 암호가 될 수 있는 문자열의 조합을 찾아내는 함수매개변수로 재귀 단계 level, 현재의 문자열 cur, 자음의 개수 ja, 모음의 개수 mo를 전달받는다.c개의 문자열을 탐색해 준다, 만약 방문 처리가..

728x90
반응형