본문 바로가기

vector6

[백준문제풀이] 11725 트리의 부모 찾기 풀이 일시 : 2020-12-27 문제 : 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. ex) 7 1 6 6 3 3 5 4 1 2 4 4 7 출력 : 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. ex) 4 6 1 3 1 4 풀이 : 입력이 주어지는 것을 vector에 받아 트리를 구성해준다. BFS로 모든 노드를 탐색하며 각각 노드마다 자신의 부모를 체크해줄 수 있다. 자신의 부모를 체크했다면 parent 배열에 저장해주고 한번에 출력해.. 2021. 1. 4.
[백준문제풀이] 10451 순열사이클 풀이 일시 : 2020-10-13 ​ 문제 : 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 1 2 3 4 5 6 7 8 3 2 7 8 1 4 5 6 와 같다. 또는, Figure 1과 같이 방향 그래프로 나타낼 수도 있다. 순열을 배열을 이용해 1 … i … n π1 … πi … πn 로 나타냈다면, i에서 πi로 간선을 이어 그래프로 만들 수 있다. Figure 1에 나와있는 것 처럼, 순열 그래프 (3, 2, 7, 8, 1, 4, 5, 6) 에는 총 3개의 사이클이 있다. 이러한 사이클을 "순열 사이클" 이라고 한다. N개의 정수로 이루어진 순열이 주어졌을 때.. 2021. 1. 1.
[백준문제풀이] 1707 이분그래프 풀이일시 : 2020-10-10 ​ 문제 : 그래프의 정점의 집합을 둘로 분할하여, 각 집합에 속한 정점끼리는 서로 인접하지 않도록 분할할 수 있을 때, 그러한 그래프를 특별히 이분 그래프 (Bipartite Graph) 라 부른다. 그래프가 입력으로 주어졌을 때, 이 그래프가 이분 그래프인지 아닌지 판별하는 프로그램을 작성하시오. 입력 : 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V(1≤V≤20,000)와 간선의 개수 E(1≤E≤200,000)가 빈 칸을 사이에 두고 순서대로 주어진다. 각 정점에는 1부터 V까지 차례로 번호가 붙어 있다. 이어서 둘째 줄부터 E개의 줄에 걸쳐 간.. 2020. 12. 31.
[백준문제풀이] 11047 동전0 풀이일시 : 2020-09-02 ​ 문제 : 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. ​ 입력: 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) ex) 10 4200 1 5 10 50 100 500 1000 5000 10000 50000 ​ 출력: 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. ex) 6 ​ 풀이 :.. 2020. 12. 30.
[개념정리] set container set container 란 - 컨테이너 는 map, vector 등 여러가지가 있는데 set도 그 중 하나이다. - container 중 연관 컨테이너 (associative container) 이다. - 노드기반 컨테이너이며 균형이진트리로 구성되어있다. - key들로 이루어져있으며 중복이 허용되지 않는다. - key가 insert 되면 key는 자동으로 정렬되어 들어간다. - default는 less(오름차순) 이다. ​ 가장 큰 특징 : 중복을 없앤다 그래서 visit상태를 나타낼 때 사용되기도 한다. ​ ​ set 의 사용 #include 선언방법 set s; sets; 멤버함수 s.begin() //맨 첫번째 원소를 지칭 s.end() //맨 마지막원소를 가리키는 부분을 알 때 s.clear().. 2020. 12. 27.
[개념정리] vector container vector 란 C++ STL vector는 list계열의 container 종류이다. 자료구조의 스택과 구조가 비슷하다. vector를 생성하면 메모리 heap에 생성되며 동적할당 된다. ​ vector 사용 선언 및 초기화 vector 변수명 vector 변수명(숫자) // 숫자만큼 벡터생성 후 0으로 초기화 vector 변수명 = {변수1, 변수2..} //벡터생성 후 오른쪽 변수값으로 초기화 vector q[] = {{변수1, 변수2}, {변수3, 변수4}) //2차원벡터 선언 및 초기화 vector변수명 //2차원 벡터 생성 Iterators 우선 vectorv; 로 선언한다. v.begin() //벡터 시작점의 주소값 반환 v.end() //벡터 끝부분+1 주소값 반환 v.[i] //벡터의 i.. 2020. 12. 26.
반응형