no image
[알고리즘 대비 - 이코테] 2. 그리디
탐욕 알고리즘(Greedy Algorithm) 미래를 내다보지 않고, 당장 눈 앞에 보이는 최적의 선택을 하는 방식 When? 탐욕 알고리즘 이외의 알고리즘이 매우 느린 경우 사용한다. 탐욕 알고리즘이 최적의 답을 보장해주는 경우 사용한다. 최적 부분 구조(Optimal Substructure) : 부분 문제들의 최적의 답을 이용하여 기존 문제의 최적의 답을 구할 수 있다는 것 부분 문제를 만들 수 있으며 부분 문제의 최적화된 값이 전체 결과까지 최적화된 값을 주는가? 탐욕적 선택 속성(Greedy Choice Property) : 각 단계에서 탐욕스런 선택이 최종 답을 구하기 위한 최적의 선택 당장의 상황에서 목표를 위해 가장 도움이 되는 것이라고 할만한 것을 고를 수 있는가? 💡 최적 부분 구조와 탐..
2021.08.20
no image
[알고리즘 대비 - 이코테] 1. 자료형
자료형 : 정수형, 실수형, 복소수형, 문자열, 리스트, 튜플, 딕셔너리 등 정수형 (Integer) : 양의 정수, 0, 음의 정수 실수형 (Real Number) : 변수에 소수점을 붙이면 실수형으로 나타낸다. 지수 표현 방식: e나 E를 이용한 지수 표현 방식 이용기본적으로 e, E를 이용한 지수 표기 방식을 사용하면 시스템 상에서 자동으로 실수형으로 판단한다. Ex. 1e9 : 10의 9제곱(1,000,000,000) round() : 소수점 이하 수를 반올림하여 입력 값까지 반환└ round(123.456, 2) → 123.46 수 자료형의 연산 / : 나눠진 결과 반환 → 기본 리턴값 : 실수형 % : 나머지 연산 결과 반환 // : 몫 연산 결과 반환 ** : 거듭 제곱 연산 결과 반환 리스..
2021.06.02
no image
[알고리즘 풀이방법] 알고리즘 평가법
시간 복잡도(Time Complexity) : 인풋 크기에 비례하는 알고리즘의 실행 시간을 나타낸다. 공간 복잡도(Space Complexity) : 인풋 크기에 비례하여 알고리즘이 사용하는 메모리 공간을 나타낸다. 빅오 표기법(Big-O Notation) nnn을 매우 크다고 가정한다. 절대적인 시간이 아닌 성장성을 보고 판단한다. O(1) : input의 크기가 소요 시간에 영향❌ (반복문이 없는 경우 대체로O(1)) O(n) : 반복되는 횟수∝ input의 크기 O(n^2) : 보통 중첩 반복문(반복문 내에 반복문이 있는 경우) O(n^3) : 중첩 반복문 O(lgn) : 보통 두배씩 증가
2021.05.26
no image
[알고리즘 풀이방법] 알고리즘 패러다임
탐색 선형 탐색 알고리즘(Linear Search Algorithm) 최선의 경우 : 1 최악의 경우 :O(n) 이진 탐색 알고리즘(Binary Search Algorithm) 📢 정렬된 자료일 경우에만 사용 가능하다. 최선의 경우 : 1 최악의 경우 :log2n 재귀 함수 base case : 문제가 이미 충분히 작아서 바로 풀 수 있는 경우 recursive case : 문제를 더 작은 문제로 쪼개서 풀 수 있는 경우(재귀) 반복문으로 풀 수 있는 문제는 재귀 함수로 풀 수 있다. 재귀 함수의 문제점 call stack이 너무 많이 쌓이게 되면 프로그램 과부하 발생 재귀 함수의 호출이 너무 많이 발생하면 반복문으로 푸는 게 좋음 알고리즘 패러다임 Brute-Force Attack(무차별 대입 공격) ..
2021.05.26