본문 바로가기

분류 전체보기544

Kotlin] 백준 1655번 문제 풀이 https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 더보기 이 문제는 도저히 모르겠어서... 다른 분의 도움을 빌림 ㅇ. maxQueue.peek()) { val minPop = minQueue.poll() val maxPop = maxQueue.poll() maxQueue.add(minPop) minQueue.add(maxPop) } } stringBuilder.append("${minQueue.peek()}\n") } print.. 2024. 4. 8.
Kotlin] 백준 12865번 문제풀이 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 더보기 이 문제는 아주 유명한 문제이다. https://ko.wikipedia.org/wiki/%EB%B0%B0%EB%82%AD_%EB%AC%B8%EC%A0%9C 배낭 문제 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 배낭 문제(Knapsack Problem 냅색 프라블럼[*])는 조합 최적화의 유명한 문제.. 2024. 4. 8.
동적 계획법(Dynamic Algorithm)(with. Kotlin) 동적 계획법은 정확하게는 알고리즘.. 이라는 느낌보다는 문제 해결 방법론에 가깝다. 동적 계획법은 같은 계산을 계속 반복하는 최적 부분 구조 알고리즘에 가장 편안한 방법이다. 동적 계획법의 경우 이전에 계산해둔 값을 저장해두고 다음 계산을 위해 재활용해서 사용하는 방식이기 때문이다. 동적 프로그래밍은 크게 상향식 접근의 타뷸레이션과 하향식 접근의 메모이제이션이 방법론으로 제기된다. 동적 계획법의 예시인 피보나치 수열을 타뷸레이션과 메모이제이션의 예시로 확인한다. 피보나치 수열을 동적 계획법을 사용해야하는 이유는 다음과 같다. 피보나치 수열은 다음과 같은 계산법을 가진다. f(n) = f(n-1) + f(n-2) 이제 여기에 1 2 3 4... 순서대로 숫자를 넣어보자. f(0) = 1 f(1) = 1 f.. 2024. 4. 5.
Kotlin] 백준 2346번 문제풀이 https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 더보기 이 문제 코틀린에게는 너무.. 너무 가혹한 문제입니다. 메모리 제한이 4mb거든요. (근데 모든 값을 int라고 해도 위치 인덱스와 종이에 쓰인 숫자를 모두 int 형으로 받는다고 해도 총합이 16,000byte인데 이게 크게 작용하는지는 모르겠습니다.) 코틀린의 큐와 덱은 Linkedlist와 ArrayDeque를 쓰는 것이 일반적이지만 진짜 별의 별 동고쇼를 해봐도 메.. 2024. 4. 4.
반응형