서버 증설 로직 개선 분석: 시간차를 극복한 풀이
이번 학습은 프로그래머스에서 "서버 증설" 문제를 풀이하면서 겪었던 시행착오와 개선 과정을 되짚어보는 시간이었습니다. 초기 풀이에서 후반 풀이로 나아가면서 발생했던 문제점을 분석하고, 어떻게 로직을 개선했는지 Gemini와의 대화를 통해 명확하게 이해할 수 있었습니다.
백준 등 알고리즘 문제를 풀며 정리한 풀이와 개념입니다.
이번 학습은 프로그래머스에서 "서버 증설" 문제를 풀이하면서 겪었던 시행착오와 개선 과정을 되짚어보는 시간이었습니다. 초기 풀이에서 후반 풀이로 나아가면서 발생했던 문제점을 분석하고, 어떻게 로직을 개선했는지 Gemini와의 대화를 통해 명확하게 이해할 수 있었습니다.
그래프 탐색 알고리즘의 핵심인 Prim과 Dijkstra 알고리즘에 대해 깊이 있게 학습했습니다. 두 알고리즘 모두 그리디(Greedy) 방식을 사용하지만, 목표와 탐색 방식에 분명한 차이가 있다는 것을 명확히 이해할 수 있었습니다.
최근 백준 17412번 도시 왕복하기 1 문제를 풀면서 네트워크 플로우의 기본 개념, 특히 정방향/역방향 유량과 잔여 용량의 중요성을 이해하게 되었습니다. 복잡하게 느껴졌던 개념들이 명확해졌고, 이를 바탕으로 코드를 직접 작성해보았습니다.
Gold III 난이도 문제를 C++로 풀이한 내용입니다. 여러 학생들의 키 순서를 알고 있을 때, 모든 학생들을 키 순서대로 줄 세우는 문제입니다.
Silver III 난이도 문제를 C++로 풀이한 내용입니다. 주어진 단어 목록에서 특정 조건을 만족하는 단어를 정렬하여 출력하는 문제입니다.
Silver II 난이도 문제를 C++로 풀이한 내용입니다. 주어진 숫자들의 산술평균, 중앙값, 최빈값, 범위를 계산하는 문제입니다.
Silver 5 난이도 문제를 C++로 풀이한 내용입니다. N개의 창문이 있을 때, 특정 규칙에 따라 창문을 토글할 때 최종적으로 열려있는 창문의 개수를 구하는 문제입니다.
Silver II 난이도 문제를 C++로 풀이한 내용입니다. 주어진 짝수 N을 두 소수의 합으로 표현하는 방법의 개수를 구하는 문제입니다.
Silver II 난이도 문제를 C++로 풀이한 내용입니다. 주어진 n보다 크고 2n보다 작거나 같은 소수의 개수를 구하는 문제입니다.
Silver III 난이도 문제를 C++로 풀이한 내용입니다. 주어진 배열에서 합이 특정 값 `x`가 되는 두 수의 쌍의 개수를 찾는 문제입니다.
Gold III 난이도 문제를 C++로 풀이한 내용입니다. 여러 개의 파일과 각 파일의 크기를 입력받아, 모든 파일을 하나의 파일로 합치는 데 필요한 최소 비용을 계산하는 문제입니다.
Silver IV 난이도 문제를 C++로 풀이한 내용입니다. 누가 춤을 추는지 추적하여 춤추는 사람의 수를 계산하는 문제입니다.
Silver I 난이도 문제를 C++로 풀이한 내용입니다. 주어진 숫자들과 연산자 개수를 이용하여 만들 수 있는 식의 최댓값과 최솟값을 찾는 문제입니다.
백트래킹 알고리즘을 공부하던 중 '연산자 끼워넣기' 문제에서 몇 가지 실수를 발견하고 해결 과정을 정리했습니다. 처음에는 백트래킹 구조 자체는 이해했다고 생각했지만, 몇 가지 부분에서 오류가 발생했습니다. 이번 학습을 통해 백트래킹의 핵심인 '상태 완전 복구'와 '완성된 결과만 평가'의 중요성을...
백준 12865번 '평범한 배낭(Knapsack)' 문제를 풀면서 동적 계획법(Dynamic Programming, DP)의 원리를 탐구하는 시간을 가졌습니다. 처음에는 복잡하게 느껴졌던 DP 테이블의 구조와 계산 방식에 대해 알게 되었습니다.
Gold_V 난이도 문제를 C++로 풀이한 내용입니다. 각 물건마다 무게와 가치가 주어졌을 때, 주어진 최대 용량의 배낭에 물건들을 담아 얻을 수 있는 최대 가치 합을 구하는 문제입니다.