본문 바로가기
728x90

Python169

[PG/Python] 베스트앨범 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 📌 문제 접근 방법 앨범에 노래를 수록하는 조건의 순서는 다음과 같다. 속한 노래가 많이 재생된 장르 - 장르 내에서 많이 재생된 노래 - 재생 횟수가 같은 경우 고유 번호가 낮은 노래 아직 lambda 사용이 익숙치 않아서 원하는 대로 정렬을 하는 게 어려웠다. 하지만 정렬만 제대로 한다면 어렵지 않은 문제! 📌 코드 from collections .. 2021. 12. 29.
[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.
728x90