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