개발/알고리즘 문제풀이
-
디스크 컨트롤러 - 왜 그렇게 풀리는가? 개념 알아보기 [프로그래머스]개발/알고리즘 문제풀이 2023. 11. 11. 16:30
문제를 풀고 나서 인터넷에 풀이들을 찾아 봤습니다. '이 방식을 쓰면 된다'는 풀이들은 많았으나, 왜 그렇게 풀면 풀리는지에 대해 이유를 설명한 글을 찾아보기가 어려워서 이렇게 글을 포스팅하게 되었습니다. 본문에는 풀이법과 정답 코드가 포함되어 있으니, 열람을 원치 않는 분들께서는 주의하여 주시기 바랍니다. 문제 보러 가기 > 개념 풀이 문제의 조건에 따르면, 작업의 요청부터 종료까지 걸린 시간의 평균을 가장 줄이는 방법을 찾아야 합니다. 한 번에 한 작업씩만 들어온다면 우선 순위가 필요 없겠지만, 현재 작업을 진행하는 도중에 여러 작업 요청이 있을 수 있습니다. 따라서 우선 순위에 따라 처리해야 하는데요. 우선 순위를 처리하는 정답부터 말씀드리자면, 현재 작업이 진행되는 동안 요청된 작업들 중에 가장 ..
-
백준 12015 : 가장 긴 증가하는 부분 수열 2개발/알고리즘 문제풀이 2022. 12. 16. 17:08
문제는 아래 링크에 : https://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net 이 알고리즘의 원리는 다음과 같다. 가장 긴 증가하는 부분 수열을 저장할 리스트를 하나 만든다. 그리고 주어진 입력값을 순차적으로 순회하며 리스트를 갱신하는데, 아래 과정에 따른다. 현재 값 n이 리스트의 최댓값보다 크면, 수열이 증가함이 보장된다. 그러므로 리스트의 마지막에 n을 append 해준다. 현재 값 n이 리스트의 최댓값과 같거나 작다면, 수열이 증가하지 않는다...