Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 양꼬치
- 고모네 콩탕
- 투어
- 문자열 압축
- 서블릿
- HTTP API
- 설탕 배달
- 포두부 보쌈
- 호유동
- 2839
- 맛집
- 다이나믹 프로그래밍
- 스프링
- 알고리즘
- 2638
- BFS
- 프로그래머스
- 2020 KAKAO BLIND
- 백준
- 동적 프로그래밍
- Servlet
- Spring
- 맛집 투어
- mvc
- 1로 만들기
- dp
- 쓰레드 풀
- 스프링 MVC
- 2589
- 완도산회
Archives
- Today
- Total
프로그래밍 공방
[프로그래머스] 무지의 먹방 라이브 본문
문제
programmers.co.kr/learn/courses/30/lessons/42891
코딩테스트 연습 - 무지의 먹방 라이브
programmers.co.kr
문제해결방법
1. 음식을 먹는데 걸리는 시간이 적은 순서대로 정렬한다.
2. 적은 시간부터 ( 음식을 먹는데 걸리는 시간 x 남은 음식의 개수 ) 를 k에서 차례로 빼준다.
3. 만약 ( 음식을 먹는데 걸리는 시간 x 남은 음식의 개수 ) 가 k보다 크다면 남은 음식들을 먹는 도중에 네트워크 장애가 발생한다는 것이므로 남은 시간 k % 남은 음식의 개수를 인덱스로 하는 음식을 찾아준다.
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | package Programmers; import java.util.Comparator; import java.util.PriorityQueue; public class Solution_무지의먹방라이브 { public static int solution(int[] food_times, long k) { int answer = -1; PriorityQueue<int[]> pq = new PriorityQueue<int[]>(new Comparator<int[]>() { @Override public int compare(int[] arg0, int[] arg1) { return Integer.compare(arg0[0], arg1[0]); } }); for(int i=0; i<food_times.length; i++) pq.add(new int[] {food_times[i], i}); long curTime = 0; loop:while(!pq.isEmpty()) { int[] cur = pq.peek(); long spendTime = (cur[0]-curTime)*pq.size(); if(k<spendTime) { k%=pq.size(); k++; int count = 0; for(int i=0; i<food_times.length; i++) { if(food_times[i]!=0) { count++; if(count==k) { answer = i+1; break loop; } } } } else { k -= spendTime; food_times[cur[1]] = 0; curTime = cur[0]; pq.poll(); } } return answer; } public static void main(String[] args) { int[] food_times = {3, 1, 2}; long k = 5; System.out.println(solution(food_times, k)); } } | cs |
코드에 대한 피드백이나 더 좋은 아이디어는 언제나 환영입니다.
'개발 > 문제해결' 카테고리의 다른 글
[프로그래머스] 도둑질 (0) | 2021.01.09 |
---|---|
[프로그래머스] 3 x n 타일링 (0) | 2021.01.08 |
[백준] 10844번 : 쉬운 계단 수 (0) | 2021.01.05 |
[백준] 12865번 : 평범한 배낭 (0) | 2021.01.05 |
[프로그래머스] 캐시 (0) | 2021.01.05 |