
[백준] 2467 용액
문제 설명 문제 링크 또 하나의 이분 탐색 문제이다. 기존에 하던 난이도에서 살짝 올려봤다. 용액은 산성과 알칼리성 용액이 있는데 그 중 산성은 음수로, 알칼리성은 양수로 표현되며, 이는 두 번째 줄에 오름차순으로 주어진다. 여기서 두 용액의 값을 더했을 때 가장 0에 근접한 수가 나오는 용액 값 조합을 구하는 문제이다. 문제 풀이 일단 먼저...
문제 설명 문제 링크 또 하나의 이분 탐색 문제이다. 기존에 하던 난이도에서 살짝 올려봤다. 용액은 산성과 알칼리성 용액이 있는데 그 중 산성은 음수로, 알칼리성은 양수로 표현되며, 이는 두 번째 줄에 오름차순으로 주어진다. 여기서 두 용액의 값을 더했을 때 가장 0에 근접한 수가 나오는 용액 값 조합을 구하는 문제이다. 문제 풀이 일단 먼저...
문제 설명 문제 링크 이진 탐색 문제이다. 어제 이진 탐색 문제를 시도했을 때, 이진 탐색을 사용해야 하는 것조차 생각 못해내서 관련 문제들을 여러 개 풀어 익숙해지려고 한다. 조카들이 나를 귀찮게 하는 것을 방지하기 위해 막대 과자를 주어야 하며, 최대한 오래 편하게 있고 싶기 때문에 과자의 길이 또한 최대한으로 늘려야 한다. 이 때 공평하게 ...
문제 설명 문제 링크 정확히 M번의 인출로 일일 소비량을 해결하려면 최소 금액 K를 어떻게 설정해야 하는지 물어보는 문제이다. 문제 풀이 이분 탐색은 어렵다. 그 개념, 혹은 구현하는 방법이 어렵다기 보다는 어떤 경우에 사용해야 하는지 아직도 감이 오지 않는다. 힌트를 보고서야 이분 탐색인 것을 파악을 했는데, 관련 문제를 많이 풀어보고 익숙해...
인터넷이란? 인터넷은 세계에서 가장 유명한 컴퓨터 네트워크이다. 인터넷은 분산화된 구조가 특징이다. 그 누구도 소유하고 있지 않으며, 연결을 통제하지 않는다. 수천 개의 다양한 조직들이 각자의 네트워크를 운영하며, 자발적인 상호 연결 협정을 체결한다. 대부분의 사람들은 웹 브라우저를 통해 인터넷 콘텐츠에 접근한다. 인터넷과 웹을 동일시하는 경우가 ...
문제 설명 문제 링크 이번 문제는 게임의 랭킹전 매치메이킹을 구현하는 것과 비슷한(혹은 비슷하다고 주장하는) 문제이다. 실제로 모션비트 프로젝트를 진행할 때, 이와 비슷한 형태로 매치메이킹을 구현을 했어서 그런지 꽤 흥미로웠다. 우선 주어진 정보를 확인하면, 총 플레이어의 수와 각 방의 최대 인원이 주어진다. 문제에서 설명하는 게임의 매치메이킹 ...
문제 설명 문제 링크 해당 문제는 가중치가 있는 그래프에서의 최단 거리를 구하는 문제이기 때문에 바로 다익스트라 알고리즘을 떠올리면 된다. 정점과 간선의 개수가 N과 M으로 주어지며, 시작점은 늘 1, 도착점은 늘 N이다. 문제 풀이 우선순위 큐를 이용해서 풀어야 하기 때문에 heapq를 사용한다. 다익스트라 알고리즘을 사용하여 최단 거리 문...
문제 설명 문제 링크 해당 문제에서 말하는 오르막 수란 수의 자리가 오름차순을 이루는 수를 말한다. 즉, 숫자를 문자열 S라고 가정했을 때, S[N] <= S[N+1]이 성립하는 수를 말한다. 문제를 살펴보면, 자리수에 따라 총 몇 개의 오르막 수가 있는지 구하는 것이 목표이다. 자리수가 늘어남에 따라 어떤 규칙이 있는지 확인해야 하며, ...
첫 번째 스터디 과제 첫 스터디를 하면서 ‘K번째 수’를 sort()를 안쓰고 풀기로 했고, stack, queue, graph를 직접 코드로 구현해보기로 했다. K번째 수: import sys input = sys.stdin.readline N, K = map(int, input().split()) A = list(map(int, in...
DMA DMA란 CPU를 거치지 않고 주변 장치가 메모리와 직접 데이터를 주고받을 수 있게 하는 기술이다. 이를 가능케 하는 것은 DMA 컨트롤러로, 주변 장치는 DMA 컨트롤러를 이용해서 메모리에 직접 접근하여 전송이 가능하다. 빠른 CPU에 비해 느린 입출력 장치들은 전체 컴퓨터 성능을 저하시킬 수 밖에 없다. 즉, CPU는 이 느린 입출력 장...
문제 설명 문제 링크 코드 최종 풀이 import sys input = sys.stdin.readline def find(a): if a == parent[a]: return a parent[a] = find(parent[a]) return parent[a] def union(a, b): ...