본문 바로가기
반응형

알고리즘211

[알고리즘] 치킨 배달 포인트 1. 조합을 이용을 하여 m개 까지 치킨집을 구할 수 있는가? 조합을 구하는 건 보통 3가지가 있는 것 같다. - 순열을 활용하여 조합을 구성하는 방법 - 확인 배열을 만들고 조합을 구성하는 방버 - 선택, 비선택 원리를 이용하여 조합을 구하는 방법 (제일 직관적이라고 생각합니다.) 2. 재귀를 잘 할 수 있는가? - 파이썬으로도 도전을 해보자 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. 재귀 조합을 이용하여 푸는 방법 // 본인이 조합을 구할 때 주로 쓰는 방법 #include #include #include using namespace std; int n, m; int map[51][51]; vector house, chicken, sel; vector dists; int dist.. 2021. 3. 7.
[알고리즘] Permutations 포인트 1. 순열을 구하는 건 정말 어려우면서도 싶습니다. 특히나 cpp, python 은 모두 순열을 구해주는 라이브러리가 있습니다. 하지만 중간에 어떠한 조건을 주면 시간 초과가 나거나 하는 문제 등이 있어서 집적적으로 구해주는 방법도 알고 있으시면 좋을 것 같습니다. 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. python1 class Solution: def __init__(self) -> None: self.answer = [] def go(self, cnt: int, nums, sel, visited): global answer if cnt == len(nums): self.answer.append(sel[:]) return for ele in range(len(nums)): if.. 2021. 3. 4.
[알고리즘] missing Number 포인트 1. 완전탐색 (Bruteforce), 짐승힘에 위력은 어디까지 인가? 2. 수학을 배우는 이유? 처음에는 변수 하나를 두고 더해가면 없는 것을 확인을 했다. 하지만 어떤 N 까지의 합에서 가지고 있는 것에 합을 빼주면 없는 값이 나오는 것을 확인할 수 있다. 참신하다. (누적합에 냄새도 스멀스멀 난다.) 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. c++/cpp #include using namespace std; class Solution { public: int missingNumber(vector& nums) { int n = nums.size(); int a = accumulate(nums.begin(), nums.end(), 0); return (n*(n+1))/2 - a;.. 2021. 3. 4.
[알고리즘] Distribute Candies 포인트 1. 사탕을 어떻게 나누어야 하는가를 고민을 해보자 사탕을 나누는 방법은 종류가 상한선 보다 적으면 종류를 반환을 하고 상한선보다 같거나 크다면 상한선을 반환을 한다. 🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. c++/cpp #include using namespace std; class Solution { public: int distributeCandies(vector& candyType) { unordered_set set1(candyType.begin(), candyType.end()); return min(set1.size(), candyType.size()/2); } }; python from collections import Counter class Solution: d.. 2021. 3. 2.
반응형