일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kotlin
- android
- g 단위테스트
- 안드로이드
- theming
- k8s
- Compose
- Coroutine
- 회고
- Rxjava
- 디자인패턴
- 알고리즘
- 테스트
- 안드로이드강좌
- mockito
- 병렬프로그래밍
- viewmodel
- 코틀린
- 병럴프로그래밍
- kotlin강좌
- Gradle
- 스레드
- 코루틴
- 안드로이드스튜디오
- 글또
- 자바
- 책
- ReactiveProgramming
- 알게되는
- 커스텀상태
- Today
- Total
목록개발/알고리즘 공부 (3)
선생님, 개발을 잘하고 싶어요.
문제링크 : https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고 www.acmicpc.net 오랜만에 백준 문제풀이잼 다이나믹 프로그래밍 적용하면 풀 수 있는 간단한 문제이다. 이 문제는 함수 하나만 제작하면 된다..
내장된 라이브러리가 존재 선형 자료 구조 # 정적 배열 (array) - 인덱스를 통해 자료에 접근 # 동적 배열 (std::vector) - 정적 배열과 같으나, 배열의 크기를 런타임에 바꿀 수 있다. 정렬 - algorithm 내의 sort, partial_sort, stable_sort 를 사용 => 정렬을 하기위해 비교 함수를 명시해야 한다. => 비교 함수 사용법 알아둘 필요가 있다. 검색 - 정렬후 이진탐색 (lower_bound, upper_bound, binary_search) # 연결 리스트 (std::list) - 임의의 위치에 새로운 문자를 삽입 할 때 효율적 (그 외에는 배열을 사용하도록 하자) # 스택 (std::stack) - 후입선출 (LIFO) - push, pop # 큐 (..
문제 링크 처음에는 수열의 부분합의 최소를 구하는 문제의 변형인거 같아서 다양한 최적화 방법을 생각해 봤는데 분산을 구할때 시간 복잡도를 낮추는 방법을 생각해내지 못해서 N이 최대 500이라는 점을 착안, 그냥 택스트를 그대로 코드로 옮겨 적기로 했다. #include #include #include #include #define MIN(a,b) ((a)>(b)? (b):(a)) int N, K; int a[500]; int main() { scanf("%d %d", &N, &K); for (int i = 0; i < N; ++i) { scanf("%d", &a[i]); } double result = 987654321; for (int i = 0; i < N - K + 1; ++i) { for (int..