알고리즘(33)
-
[프로그래머스] 디스크 컨트롤러_JAVA
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 문제를 아주 잘 읽어봐야 한다. (그렇지 않으면 무수한 테스트케이스 실패의 환대를 받을 것임 ㅎ) 각 작업에 대해 [작업이 요청되는 시점, 작업의 소요시간]을 담은 2차원 배열 jobs가 매개변수로 주어질 때, 작업의 요청부터 종료까지 걸린 시간의 평균을 가장 줄이는 방법으로 처리하면 평균이 얼마가 되는지 return 하도록 solution 함수..
2022.02.15 -
[프로그래머스] 더 맵게_JAVA
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 우선 순위 큐를 알면 쉽게 풀 수 있는 문제 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) 우선순위 큐에 스코빌 지수가 담긴 음식들을 넣으면, 루트노드 : 가장 맵지 않은 음식의 스코빌 지수 가 된다. 따라서 큐에서 값을 두개 꺼내면 해당 공식의 인자를 구할 수 있으..
2022.02.15 -
[프로그래머스] 주식가격_JAVA
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 더보기 입출력 예 prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. 현재 prices[i]와 비교하는 prices[j]의 간극을 재어 return하면 된다. 단 바로 다음 주식에서..
2022.02.11 -
[프로그래머스] 다리를 지나는 트럭_JAVA
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 첫 구절을 읽자마자 뭐다? 큐다~ "정해진 순"과 같이 선입선출의 냄새를 풍기는 문제는 바로 큐를 파악해야 한다. 다리를 건너는 중인 트럭을 큐에 넣는다. 단, 큐에 삽입 전 다리의 무게를 넘지 않도록 고려한다. 큐에 들어가는 인자들은 [트럭이 다리..
2022.02.11 -
[프로그래머스] 프린터_JAVA
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 이 구문부터 물구나무 서고 봐도 큐에 관련된 문제임을 알 수 있다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다...
2022.02.11 -
[프로그래머스] 기능개발_JAVA
문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 뒤의 작업이 먼저 끝나더라도, 앞 작업이 끝나지 않으면 배포가 불가능하다는 성질 -> 큐 선입 선출의 성질을 가진 큐를 이용하여 풀기에 용이한 문제이다. 매일 각 progresses에 담긴 작업에 speeds만큼 작업량을 올려준다. que의 맨 앞에 있는 작업량이 100이상일 때, 해당 작업을 포함하여 연달아 작업량을 완수한게 있다면 poll로..
2022.02.11