반응형 코딩테스트20 [알고리즘] 4. 그리디 && 구현 Index 1. 그리디 2. 구현 3. 추천 문제 4. 참고자료1. 그리디Greedy Algorithm- 현재 상황에서 지금 당장 좋은 것만 고르는 방법- 정당성 분석, 반복적 선택시 최적의해 보존되는지 검토 (Exam)- 거스름 돈: 가장 큰 동전의 단위가 항상 작은 단위의 배수이므로 작은 단위의 동전들을 종합해 다른 해가 나올 수 없음 2. 구현Implementation- 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정(problem->thinking->solution)- 2차원 공간을 다룰 경우 Matirx(행렬)을 사용- 시뮬레이션 및 완전 탐색의 경우 2차원 공간에서의 방향 벡터가 활용dx = [0, -1, 0, 1]dy = [1, 0, -1, 0]for i in range(4): nx =.. 2024. 7. 19. [알고리즘] 3. 정렬 Index 1. 정렬 2. 버블 정렬 3. 삽입 정렬 4. 선택 정렬 5. 퀵 정렬 6. 병합 정렬 7. 계수 정렬 8. 추천 문제 9. 참고자료1. 정렬정렬(Sort)- 데이터를 특정한 기준에 따라 순서대로 나열하는 것 2. 버블 정렬버블 정렬(Bubble Sort) def bubble_sort(arr: list): for i in range(len(arr)): for j in range(len(arr)-1): if (arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr3. 삽입 정렬삽입 정렬(Insertion Sort)- 처리되지 않은 데이터를 하나씩 골라 적절한 위치에 삽입- .. 2024. 7. 19. [알고리즘] 2. 코딩테스트를 위한 파이썬 라이브러리 Index 1. 내장 함수 2. itertools 3. heapq 4. bisect 5. collections/math 6. 참고자료1. 내장 함수 내장 함수- 기본 입출력 함수부터 정렬 함수까지 기본적인 함수들을 제공- sum(list), min(list), max(list), eval(문자열 수식), sorted(list, reverse=True, key=lambda x: x[1]) 2. itertoolsitertools- 반복되는 형태의 데이터를 처리하기 위한 기능 제공- 순열과 조합 기능 제공- 순열: 서로 다른 n개에서 서로 다른 r개를 선택하여 일렬로 나열하는 것- 조합: 서로 다른 n개에서 순서에 상관 없이 서로 다른 r개를 선택하는 것# 순열import itertools import pe.. 2024. 7. 19. [알고리즘] 1. 코딩테스트를 위한 파이썬 문법 및 환경설정 Index 1. 코딩 테스트 2. 환경설정 3. 기본 문법 4. 자료형 && 자료구조 5. 주의할 점 6. 참고자료 1. 코딩 테스트코딩 테스트- 기업/기관에서 직원이나 연수생을 선발하기 위한 목적으로 시행 되는 시험- 문제 해결 역량을 평가 복잡도(Complexity)- 시간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석- 공간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석- 연산 횟수가 5억이상인 경우 Clang은 1~3초, Python은 5~15초 문제 해결 과정1. 지문 읽기 및 요구사항 분석2. 문제 해결 아이디어 찾기 3. 소스코드 설계 및 코딩 2. 환경설정VSCode- https://code.visualstudio.com/download Pyt.. 2024. 7. 19. [코딩테스트]1.3 코딩테스트 사이트 코딩테스트 사이트국내 및 해외의 코딩테스트를 위한 문제를 제공하는 사이트에 대해 알아보자.국내- 프로그래머스: - 백준 온라인 저지(solved.ac): - SW Expert Academy: 삼성에서 만든 코딩테스트 사이트- Softeer: 현대자동차 그룹에서 만든 코딩테스트 사이트해외- Leetcode: 2024. 7. 19. [코딩테스트] 목차 코딩테스트 with C++1. 코딩테스트 개요1.1 코딩테스트란?1.2 시간복잡도/공간복잡도1.3 코딩테스트 사이트2. C++ 기본 문법2.1 변수 및 자료형2.2 연산자2.3 제어문: 조건문2.4 제어문: 반복문2.5 함수2.6 배열2.7 문자열2.8 포인터, 참조자2.9 구조체, 열거형, 공용체2.10 STL 3. 기본 자료구조3.1 배열3.2 연결리스트3.3 스택3.4 큐3.5 덱3.6 해시3.7 트리3.8 우선순위 큐3.9 그래프4. 알고리즘4.1 정렬: 버블정렬, 삽입 정렬, 선택 정렬4.2 정렬: 퀵정렬, 병합 정렬, 계수 정렬4.3 재귀4.4 수학: 최대공약수/최소공배수, 소수 찾기, 순열과 조합4.5 다이내믹 프로그래밍4.6 그리디4.7 시뮬레이션(구현)4.8 탐색: 선형 탐색/이진 탐색4.. 2024. 7. 18. [코딩테스트] 해시 해시 unordered_map 다루기#include int main(int argc, char** argv) { /* 생성 및 초기화 */ unordered_map dict1 = {{"key1": val1}, {"key2": val2}, {"key3": val3}}; /* 삽입 */ dict1["key"] = val; dict1.insert({"key": val}); dict1.insert(make_pair("key", val)); /* 삭제 */ dict1.erase("key"); /* 탐색 */ dict1.find("key"); /* 조회 */ for (auto it = dict1.begin(); it != dict.. 2024. 7. 9. [코딩테스트] 큐 큐- FIFO(First In First Out): 먼저 들어간 데이터가 먼저 나오는 구조- 작업 대기열이나 이벤트 처리에 사용 queue 다루기#include int main(int argc, char** argv) { /* queue 생성 및 초기화 */ queue q; /* 삽입 */ q.push(val); /* 삭제 */ q.pop(); /* 조회 */ while (!q.empty()) { std::cout 문제 추천- 기능 개발(Lv2)- 카드 뭉치(Lv1)+) - 다리를 지나는 트럭(Lv2) 2024. 7. 9. [코딩테스트] 스택 스택- FILO(First In Last Out): 먼저 들어간 데이터가 나중에 나오는 구조- 함수 호출시 메모리의 스택에 사용 stack 다루기#include int main(int argc, char** argv) { /* stack 선언 및 초기화 */ stack s; /* 추가 및 삭제 */ s.push(val); s.pop(); /* 조회 */ while (!s.empty()) { std::cout 문제 추천- 괄호 회전하기(Lv2)- 짝지어 제거하기(Lv2)- 주식 가격(Lv2)- 크레인 인형 뽑기 게임(Lv1)- 표 편집(Lv3)+)- 같은 숫자는 싫어(Lv1)- 올바른 괄호(Lv2)- 컨트롤 제트(Lv0) 2024. 7. 9. 이전 1 2 3 다음 반응형