💡 비트마스크(BitMask) 정수로 집합을 나타낼 수 있는 기법 비트로 부분집합을 나타낼 수 있다. 비트마스크를 사용하는 이유 완전 탐색을 할 때, 재귀호출 없이 모든 경우를 살펴볼 수 있다. 집합을 배열의 인덱스로 표현 가능하다. (※메모리 절약) 상태가 다이나
💡 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 💻 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2],
10814 나이순 정렬 💡 문제 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 💻 입력 첫째 줄에 온라인 저지 회
C++의 ` 헤더에는 퀵 정렬로 구현된 믿음직스러운 sort()` 함수가 있다. 퀵 정렬은 비교하여 정렬하는 알고리즘 중에 가장 빠르고 안정적인 친구이다. 역시 C++을 선택하길 잘했다고 스스로의 안목에 대해 칭찬해보며 BOJ :: 10989 수 정렬하기 3 를 풀
1. 오름차순 정렬 2. 중복요소 제거 3. 인풋배열요소==압축배열요소 일때 탐색 후 해당 인덱스값 반환
다이나믹 프로그래밍 ❓다이나믹 프로그래밍(DP)이란? 여러 개의 하위문제를 푼 후, 그 결과를 쌓아올려 주어진 문제를 해결하는 알고리즘이다. DP로 풀 수 있는 문제는 다음과 같은 조건을 만족시킨다. > * 1. 최적 부분 구조* : dp[1, 2, .... i-1]
문제 풀러 바로가기 :: 1912 연속합n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다.예를 들어서 $10, -4, 3, 1, 5, 6
dp로는 O(n^2), 이분탐색으로는 O(nlogn)?
결정 문제(decision problem)의 답이 이분적일 때, 사용할 수 있는 탐색 기법이진 탐색은 최적화 문제와 결정 문제로 구성된다.1) 최적화 문제 : 조건을 만족하는 최대/최소 찾기 ★최적화 문제에 단조성이 있다면 이진 탐색 알고리즘 적용가능2) 결정 문제 :
백트래킹=똑똑한 브루트포스+dfs(재귀)
내가 가지고 있는 동전 + 동전 가치에 따라 업데이트되는 일반화 동전 dp문제
dp 개념을 기반으로 한 특정 구간 사이의 합을 빠르게 구해보자~