상세 컨텐츠

본문 제목

기능개발

JAVA/JAVA STUDY

by yeongs 2020. 11. 4. 23:52

본문

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/42586

 

코딩테스트 연습 - 기능개발

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는

programmers.co.kr

문제 설명 및 예시 :

코드 :

import java.util.*;

class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
		int[] answer = {};
		ArrayList<Integer> answerList = new ArrayList<>();
		Queue<Integer> q = new LinkedList<Integer>();
		
		for(int i =0; i<progresses.length;i++)
		{
			int day = 0 ;
			while(progresses[i] <100)
			{
				progresses[i] += speeds[i];
				day++;
			}
			q.offer(day);			
		}

//		for(int i : q)
//		{
//			System.out.println(i);
//		}
		while(true)
		{
			if(q.isEmpty()) // q가 비어있으면 멈춘다.
			{
				break;
			}
			int count = 0 ;
			int tmp = q.peek(); // tmp에 현재의 q 제일 처음 값을 넣는다.
//			System.out.println(tmp);
			try {
				while (tmp >=q.peek())
				{
					q.poll();
					count++;
//					System.out.println(count);
				}
				answerList.add(count);
			}catch (NullPointerException e) {
//				System.out.println(count);
				answerList.add(count); // q 가 null이 발생하면서 멈추기 직전 현재 count 값을 list에 넣는다. 
				break;
			}

		}
		answer = new int[answerList.size()];
		for(int i =0; i<answerList.size();i++)
		{
			answer[i]=answerList.get(i);
		}
        return answer;
    }
}

결과 :

'JAVA > JAVA STUDY' 카테고리의 다른 글

멀쩡한 사각형  (0) 2020.11.05
[1차] 다트 게임  (0) 2020.11.02
실패율  (0) 2020.11.02
[1차] 비밀지도  (0) 2020.10.21
예산  (0) 2020.10.21

관련글 더보기

댓글 영역