목록2024/02/09 (5)
득이공간
1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net #include #include #include using namespace std; vector OrderedList; void Test() { int N; cin >> N; OrderedList.reserve(N); OrderedList.clear(); pair Ranks; for (int i = 0; i > Ranks.first >> Ranks.second; OrderedList.emplace_back(R..
18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net #include #include #include using namespace std; int X[1000000]; set OrderedList; unordered_map Map; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; for (int i = 0; i > X[i];..
해당 게시물은 하루코딩님의 'Do it! 알고리즘 코딩테스트 with C++' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 4장. 그리디 4-1. 그리디 📌 4-1. 그리디 * 그리디 - 현재 상태에서 보는 선택지 중 최선의 선택지가 전체 선택지 중 최선의 선택지라고 가정하는 알고리즘 * 그리디 동작 원리 1. 현재 상태에서 가장 최선이라고 생각되는 해 선택 2. 현재 선택한 해가 전체 문제의 제약 조건에 벗어나지 않는지 검사 3. 현재까지 선택한 해 집합이 전체 문제를 해결할 수 있는지 검사 - 해결하지 못한다면 1번부터 다시 반복
해당 게시물은 하루코딩님의 'Do it! 알고리즘 코딩테스트 with C++' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 3장. 탐색 3-1. 깊이 우선 탐색 3-2. 너비 우선 탐색 3-3. 이진 탐색 📌 3-1. 깊이 우선 탐색 * 깊이 우선 탐색 - 시작 노드에서 출발해서 탐색할 한 쪽 분기를 정해 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동해서 다시 탐색을 수행하는 알고리즘 - 기능: 그래프 완전 탐색 - 특징: LIFO, 재귀 함수로 구현 or 스택 자료구조 이용 - 시간 복잡도: O(V+E) * 깊이 우선 탐색 동작 원리 1. 그래프를 인접 리스트로 표현 2. 방문 배열 초기화, 시작 노드 선택 3. 방문 배열 체크 후 인접 노드 중 미방문 노드 탐색 - 재..
해당 게시물은 하루코딩님의 'Do it! 알고리즘 코딩테스트 with C++' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 2장. 정렬 2-1. 버블 정렬 2-2. 선택 정렬 2-3. 삽입 정렬 2-4. 퀵 정렬 2-5. 병합 정렬 2-6. 기수 정렬 📌 2-1. 버블 정렬 * 버블 정렬 - 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬 - 시간 복잡도: O(N^2) * 버블 정렬 동작 원리 1. 비교 연산이 필요한 루프 범위 설정 2. 인접한 데이터 값 비교 3. swap 조건에 부합하면 swap 연산 수행 4. 루프 범위가 끝날 때까지 2~3 반복 5. 정렬 영역 설정. 다음 루프를 실행할 때는 이 영역을 제외 6. 비교 대상이 없을 때까지 1~5 반복 *..