⭐️난이도 Gold 2 ⭐️문제 https://www.acmicpc.net/problem/4195 4195번: 친구 네트워크 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계의 수 F가 주어지며, 이 값은 100,000을 넘지 않는다. 다음 F개의 줄에는 친구 관계가 생긴 순서대로 주어진 www.acmicpc.net ⭐️ Idea Flow 먼저 문제를 해석해보면 친구 관계는 모두 이어져있는 것이 아니라 여러 개의 친구 관계로 이루어져 있을 가능성이 높다. 이 때 바로 생각난 것이 바로 Disjoint Set(서로소 집합)이다. Union-Find 방식을 이용하면 될 것이라고 생각했다. 그리고 Disjoint set를 사용하려면 각 이용자에게 index를 부여해야 한다..
C++
⭐️ 난이도 Medium ⭐️ 문제 https://leetcode.com/problems/top-k-frequent-words/ Top K Frequent Words - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Given an array of strings words and an integer k, return the k most frequent strings. Return the answer sorted by the frequency from highes..
💡 vector의 주요 인터페이스와 특징 vector 컨테이너는 대표적인 시퀀스 컨테이너로 배열과 비슷한 양상을 띄고 있습니다. 알고리즘 문제를 풀 때에 많이 사용되는 컨테이너 중 하나 입니다. 또한 vector는 시퀀스 컨테이너이기 때문에 원소의 저장 위치(순서)가 정해지며, 배열 기반 컨테이너이므로 원소가 하나의 메모리 블록에 할당됩니다. 시퀀스 컨테이너는 원소를 차례차례 추가하는 push_back()과 제거하는 pop_back() 연산과 첫 원소를 참조하는 front()와 마지막 원소를 참조하는 back() 연산 지정한 위치에 원소를 삽입할 수 있는 insert() 연산을 가집니다. vector의 경우 앞쪽이 막혀있는 형태이기 때문에 앞 쪽에서 원소를 추가/제거를 할 수 없으며, 뒷 쪽에서만 원소를..
💡 STL이란? STL은 표준 C++라이브러리의 일부분으로 Standard Template Library의 약자로써, 프로그램에 필요한 자료구조 & 알고리즘을 템플릿으로 제공하는 라이브러리입니다. 💡 컨테이너 컨테이너는 같은 타입을 저장, 관리할 목적으로 만들어진 클래스이며, 총 7가지 컨테이너 (vector, deque, list, set, multiset, map, multimap)를 제공합니다. 먼저 컨테이너는 크게 두가지로 나눌 수 있습니다. 1. 표준 시퀀스 컨테이너(standard sequence container) 컨테이너 원소가 자신만의 삽입 위치(or 순서)를 가지는 컨테이너를 말합니다. 원소를 해당 컨테이너에 삽입하면, 삽입되는 순서에 따라 원소의 위치가 결정되고 바뀌지 않습니다. ex..
⭐️난이도 Level 2 ⭐️문제 문제 설명 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이..
⭐️난이도 Level 3 ⭐️문제 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 ..