본문 바로가기
728x90

알고리즘141

[PG/Python] 표 편집 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 📌 문제 접근 방법 연결리스트를 활용하여 삽입, 삭제의 시간 복잡도를 O(1)으로 구현하였다. 표에서 초기 행 번호를 key, 해당 번호의 앞/뒤 행 번호를 리스트 형태로 value에 저장했다. 인덱스의 이동의 경우, x번만큼 위/아래로 이동하도록 하였다. 삽입, 삭제의 경우, 첫 번째 인덱스일 경우/마.. 2021. 12. 27.
[PG/Python] 디스크 컨트롤러 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 📌 문제 접근 방법 최소힙을 사용해서 풀이했다. jobs의 첫 번째 원소가 현재 시간보다 작거나 같다면 ready에 push해준다. 이 때, (소요 시간, 요청 시점) 순으로 튜플을 만들어서 ready가 소요 시간을 기준으로 최소값을 찾을 수 있도록 해준다. 만약 ready에 대기하고 있는 작업이 있다면 해당 작업의 소요 시간만큼 time을 늘리고.. 2021. 12. 26.
[PG/Python] 피로도 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 📌 문제 접근 방법 던전의 개수가 8개 이하이므로 완전탐색을 사용해도 되겠다고 판단하였다. permutations를 사용하여 던전을 들어가는 순서의 조합을 모두 만든 후, 각각의 조합을 차례대로 순회하며 입장할 수 있는 던전의 개수를 세었다. 개수를 다 세고 answer를 최대값으로 갱신하고, 반복문이 끝난 뒤 answer에 저장된 값을 반환하였.. 2021. 12. 22.
[PG/Python] 야근 지수 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/12927 코딩테스트 연습 - 야근 지수 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도 programmers.co.kr 📌 문제 접근 방법 works에 들어있는 일들의 작업량을 key로, 해당 작업량만큼의 작업 개수를 value로 딕셔너리를 만들어줬다. n만큼 반복문을 돌리면서 작업량이 가장 큰 작업부터 1씩 작업을 진행했다. 이 때, 해당 작업량을 가진 작업이 모두 작업을 진행했다면 해당 key를 삭제하고 가장 큰 작업량을 갱신한다. 또한 가장 큰 작업량.. 2021. 12. 22.
728x90