Algorithm/📖Baekjoon138 #1655 가운데를 말해요 문제 코드import java.io.BufferedReaderimport java.io.InputStreamReaderimport java.util.PriorityQueuefun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val sb = StringBuilder() val n = br.readLine().toInt() val minHeap = PriorityQueue() val maxHeap = PriorityQueue(reverseOrder()) for (i in 0.. 1) { minHeap.offer(maxHeap.poll()) } else if (minHeap... 2024. 7. 20. #12865 평범한 배낭 코딩테스트를 위해 알고리즘을 다시 공부하려고 한다!기존에 c++로 진행했던걸 kotlin으로 변경해서 다시 풀어보려고 한다 문제 코드import kotlin.math.maxfun main() { val (n, k) = readln().split(' ').map { it.toInt() } val w = IntArray(n + 1) val v = IntArray(n + 1) val dp = Array(n + 1) { IntArray(k + 1) } for (i in 1..n) { val (weight, value) = readln().split(" ").map { it.toInt() } w[i] = weight; v[i] = value } for.. 2024. 7. 19. #9465 스티커 # 문제 # 입력 및 출력 # 풀이 처음에 풀었을 땐 접근 자체는 나쁘지 않았다고 보는데 코드가 엉터리였다 선택을 하지 않았을때를 따로 빼서 max 값을 구하도록 했는데 모든 케이스를 조회하지 못해 틀렸다 내 힘으로 풀고 싶어서 며칠 뒤에 다시 풀었다 i-1번째 열에서 선택한 행과 i번째 열에서 선택한 행을 쌍을 지어 생각하다 보니 해결할 수 있었다 i번째 열에서 첫 번째 행을 선택한 경우 i-1번째 열에서 선택하지 않은 경우와 두 번째 행을 선택한 경우의 max값을 구하고 이것을 계속 반복하면 된다 그리고 dp[n]은 모든 케이스의 max 값을 모아둔 경우기 때문에 여기서 max값을 구하면 최종 결과값이 된다 #include #include using namespace std; int dp[100001.. 2022. 8. 14. #11051 이항 계수 2 # 문제 # 입력 및 출력 # 풀이 처음에 풀었던 방법이 하나하나 계산해주는 방법이었다 // 틀린 풀이 #include using namespace std; int com[1001] = { 1, }; int main() { int n, k; cin >> n >> k; int t = n, b = 1; for (int i = 1; i > k; for (int i = 1; i 2022. 8. 12. #3036 링 # 문제 # 입력 및 출력 # 풀이 기약 분수 형태로 출력해야 하기 때문에 최대공약수를 구해야 한다 최대 공약수를 구하기 위해 유클리드 호제법을 사용했음 https://kangworld.tistory.com/184 [코딩 팁] 최대공약수 : 유클리드 호제법 원리 ✍️ 최대공약수와 유클리드 호제법 코딩 테스트에서 심심치 않게 등장하는 최대공약수 구하기 2부터 시작하는 반복문으로 구할 수 있지만 유클리드 호제법을 사용하면 보다 효율적으로 구할 kangworld.tistory.com 위 블로그 참고 #include using namespace std; int gcd(int first, int r) { int b, s, mod; if (first < r) b = r, s = first; else b = firs.. 2022. 8. 10. #11659 구간 합 구하기 4 # 문제 # 입력 및 출력 # 풀이 처음엔 구간만큼 반복문으로 합을 구했더니 시간 초과가 떴다 그래서 dp를 쓰면 좋겠다고 생각했다 누적 합을 순서대로 저장해두고 구간을 입력받으면 바로 배열에 접근해서 빼주기만 하면 되기 때문에 반복문의 수도 확실히 줄어든다 이렇게 해도 시간초과가 뜨길래; 입력이랑 출력이 많아서 그런가 해서 ios_base::sync_with_stdio(false); cin.tie(0), cout.tie(0); 코드를 넣어주니까 해결됐음 #include using namespace std; int acc[100001]; int main() { ios_base::sync_with_stdio(false); cin.tie(0), cout.tie(0); int n, m, t; cin >> n .. 2022. 8. 8. 이전 1 2 3 4 5 6 7 ··· 23 다음