본문 바로가기
Java/AlgorithmPS

프로그래머스) 기능개발

by NH_club 2023. 10. 14.
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

class Solution {
    public List<Integer> solution(int[] progresses, int[] speeds) {

        List<Integer> result = new ArrayList<>();
        Queue<Integer> queue = new LinkedList<>();

        for (int i = 0; i < progresses.length; i++) {
            if ((100 - progresses[i]) % speeds[i] == 0) {
                queue.add((100 - progresses[i]) / speeds[i]);
            } else {
                queue.add((100 - progresses[i]) / speeds[i] + 1);
            }
        }


        while (!queue.isEmpty()) {
            int day = queue.poll();
            int count = 1;

            while (!queue.isEmpty() && day >= queue.peek()) {
                queue.poll();
                count++;
            }

            result.add(count);
        }


        return result;
    }
}

깨달은 점:

나누기가 들어갈 땐 항상 소수점까지 고려해서 결과를 예측해야 함

결과에서 불필요한 부분은 과감하게 버리기. 그렇지 않으면 문제에 매몰되어 시간이 오래걸림

while 한 번으로도 끝낼 수 있음. 나중에 다시 풀어보기

 

'Java > AlgorithmPS' 카테고리의 다른 글

백준) 큐(10845 번)  (1) 2023.10.13
백준) 카드2(2164 번)  (0) 2023.10.12
프로그래머스) 올바른 괄호  (0) 2023.10.05
백준) 균형잡힌 세상 (4949번)  (0) 2023.10.04
백준) 도키도키 간식드리미 (12789번)  (0) 2023.09.27