Skip to content

Commit 24ace6a

Browse files
committed
[level 2] Title: 기능개발, Time: 2.80 ms, Memory: 80 MB -BaekjoonHub
1 parent 7c90f86 commit 24ace6a

File tree

2 files changed

+27
-29
lines changed

2 files changed

+27
-29
lines changed

프로그래머스/2/42586. 기능개발/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
### 성능 요약
66

7-
메모리: 85.8 MB, 시간: 4.68 ms
7+
메모리: 80 MB, 시간: 2.80 ms
88

99
### 구분
1010

@@ -16,7 +16,7 @@
1616

1717
### 제출 일자
1818

19-
2025년 04월 17일 16:42:53
19+
2025년 09월 01일 19:00:08
2020

2121
### 문제 설명
2222

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,33 @@
11
import java.util.*;
22
class Solution {
3-
public int[] solution(int[] progresses, int[] speeds) {
4-
int size = progresses.length;
5-
int[] remains = new int[size];
6-
7-
for(int i = 0; i < size; i++){
3+
public int[] solution(int[] progresses, int[] speeds) {
4+
Queue<Integer> queue = new LinkedList<>();
5+
for(int i = 0; i< speeds.length; i++){
6+
int progress = progresses[i];
87
int speed = speeds[i];
9-
int remain = (100 - progresses[i]);
10-
if(remain % speed == 0){
11-
remains[i] = remain/speed;
12-
}else {
13-
remains[i] = remain/speed + 1;
14-
}
158

16-
}
17-
18-
ArrayList<Integer> result = new ArrayList<>();
19-
int prev = -1;
20-
Map<Integer, Integer> map = new HashMap<>();
21-
for(int remain:remains){
22-
if(remain > prev) {
23-
map.put(remain, map.getOrDefault(remain, 0) + 1);
24-
if(prev != -1 ) result.add(map.get(prev));
25-
prev = remain;
9+
int day = 0;
10+
while(progress < 100){
11+
progress += speed;
12+
day ++;
2613
}
27-
else map.put(prev, map.getOrDefault(prev, 0) +1);
14+
queue.offer(day);
15+
}
16+
17+
List<Integer> answer = new ArrayList<>();
18+
int standard = queue.poll(); // 기준 값
19+
int cnt = 1;
20+
while(!queue.isEmpty()){
21+
if(standard < queue.peek()) {
22+
standard = queue.poll();
23+
answer.add(cnt);
24+
cnt = 1; // cnt 초기화
25+
} else{
26+
queue.poll();
27+
cnt ++;
28+
}
2829
}
29-
result.add(map.get(prev));
30-
31-
return result.stream()
32-
.mapToInt(Integer::intValue)
33-
.toArray();
30+
answer.add(cnt);
31+
return answer.stream().mapToInt(Integer::intValue).toArray();
3432
}
3533
}

0 commit comments

Comments
 (0)