일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 리스트
- 자바
- list
- 자바리스트정렬
- composelifecycle
- nullpointerexception방지
- 파이썬
- 프로그래머스
- compose
- Provider
- 자바set
- 배열
- Python
- 백준
- filternotnull()
- jetpack
- Dependency
- programmers
- 파이썬문법
- android
- 백준파이썬
- 문자열
- disposableeffect
- Kotlin
- Hilt
- ContentProvider
- 오블완
- 티스토리챌린지
- 자료형
- Java
- Today
- Total
목록Practice/Algorithm (4)
study gomi
이분 탐색(Binary Search) - 정렬된 배열에서 특정한 값을 효율적으로 찾는 알고리즘 - 탐색 범위를 반으로 줄여가면서 원하는 값을 찾는 것 - 정렬된 배열에서 매우 빠르게 원하는 값을 찾을 수 있음. - 큰 데이터에서 특정 값을 찾을 때 유용 - 기본 절차 배열의 가장 낮은 인덱스(low)와 가장 높은 인덱스(high)를 설정. low가 high보다 작거나 같은 동안 반복. 중간 인덱스(mid)를 찾는다. 일반적으로 mid = (low + high) // 2로 계산. 중간 인덱스의 값(array[mid])이 찾고자 하는 값(target)과 같으면 위치를 반환. 만약 array[mid]가 target보다 작으면, low를 mid + 1로 설정. 만약 array[mid]가 target보다 크면, ..
동적 계획법 / 개념&활용 / 예시(피보나치 수열) 그나저나 c++ 세상 오랜만... 다 잊어버렸다 미쳐 진짜 동적 계획법(Dynamic Programming, DP) - 큰 문제를 해결하기 위해 작은 부분 문제를 해결하고 그 결과를 저장, 재활용하여 전체 문제를 해결. - 최적화 문제, 최단 경로 문제 - 핵심은 메모이제이션(Memoization) : 작은 부분 문제들의 해결 값을 저장 -> 재사용하는 구조 - 특징 : 중복되는 부분 문제들의 해결을 효율적으로 처리하여 전체적인 계산량을 감소시킴 더보기 1. 최적 부분 구조(Optimal Substructure) 큰 문제의 최적해가 작은 문제들의 최적해로 구성되어 있어야 한다. 2. 중복 부분 문제(Overlapping Subproblems) 동일한 부..
알고리즘 개념 & 활용/적용 문제 예시 & 예제 코드(Python) (작성하느라 힘들었다. 대학생 때 수업 듣던 내용 chat gpt한테 검증 받아서 셀프로 작성했다. 불펌하면 평생 탈모로 인한 변발 스타일로 살아가게 됨. 나눔고딕이 더 예쁜 것 같기도 하고 본고딕이 더 예쁜 것 같기도 하고...) 1. 완전 탐색 (Brute Force) - 문제의 가능한 모든 경우를 체계적으로 나열하고 검사하여 해답을 찾는 방법 - 핵심 : 모든 가능성을 체계적으로 파악 -> 하나씩 검토 - 구현이 간단하다. - 경우의 수가 많을 때는 비효율적 => 적을때 사용 - 적용 예 : 암호 해독, 순열 생성, 조합 탐색 - 예제 ↓ 더보기 def print_subsets(arr): n = len(arr) for i in ra..
개념 출처 : chatGPT 코드 출처 : 이전에 다른 언어로 내가 작성해 뒀던 거 참고 더보기 - chatGPT는 최고의 선생님이다. - 그래도 문법에 관한 거 말고 공통적인 알고리즘 개념 같은 건 아직 대학생 때 썼던 책을 찾아보는 게 더 편하다. - 한 번 읽어봤던 거라 이해가 잘 된달까... 쩝 - 백준 풀다보니까 모르는 게 참 많다 싶다 😣😭😭😭 - 그래도 뭔가 맨날 풀어본 거 / 공부 한 거를 혼자 적어보니까 기억에 남긴 하는 것 같다 에라토스테네스의 체 - 에라토스테네스의 체는 소수를 찾는 가장 오래되고 효율적인 알고리즘 중 하나 - 특정 범위 내에서 모든 소수를 찾기 위해 사용된다. - 적당히 작은 숫자는 일일이 검사하는 게 더 나은 것 같다. 코드 넘 길어 - 0 - - 주요 아이디어는 ..