내 코드
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
List<Integer> answer = new ArrayList<>();
List<Integer> list = new ArrayList<>();
for (int i = 0; i < progresses.length; i++) {
int used = (100 - progresses[i]) / speeds[i];
if((100 - progresses[i]) % speeds[i] != 0) {
used++;
}
list.add(used);
System.out.println(used);
}
int p = list.get(0);
int x = 0;
for (int j = 0; j < list.size(); j++) {
if (list.get(j) > p) {
answer.add(x);
p = list.get(j);
x = 1;
} else {
x++;
}
}
answer.add(x);
// List -> int[]
int[] result = new int[answer.size()];
for (int i = 0; i < answer.size(); i++) {
result[i] = answer.get(i);
}
return result;
}
}
배열로 푸는 방법이었다고 한다..
큐로 어떻게 푸나 다른 풀이도 찾아봤다...
[ 프로그래머스 - Java ] 기능개발 ( 자바 )
( 스택/큐 / 기능개발 ) [문제] 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르
yline.tistory.com
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
// 남은 작업일 수 저장
Queue<Integer> q = new LinkedList();
for(int i=0 ; i < speeds.length ; i++) {
// 남은 작업일 계산해 큐에 추가
q.offer((100 - progresses[i]) / speeds[i] +
((100 - progresses[i]) % speeds[i] == 0 ? 0 : 1));
}
int cnt = 1;
int now = q.poll(); // 첫 번째 항목 추출
ArrayList<Integer> arr = new ArrayList<>();
while(!q.isEmpty()) {
int next = q.poll();
if(now >= next) cnt++; // 현재 작업일이 더 많은 경우
else {
arr.add(cnt);
now = next; // 현재 작업일을 next로 교체
cnt = 1;
}
}
arr.add(cnt); // 마지막 cnt 따로 추가
return arr.stream().mapToInt(i->i).toArray();
}
}
♦ q.offer()
: 데이터 입력
♦ q.poll()
: 첫 번째 데이터 추출
[프로그래머스] 기능개발 - Java, 자바
레벨 2https://programmers.co.kr/learn/courses/30/lessons/42586스택/큐 유형에 속한 문제지만 그 유형으로 해결할 방법이 떠오르지 않아 배열로 문제를 해결했다. 문제 풀이 순서1\. 작업일 수 배열(works)을 구
velog.io
[프로그래머스] 기능개발 (Java 자바)
문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이
tmdrl5779.tistory.com
으악 문제부터 풀이까지 이해하는 데 시간이 꽤 걸렸다ㅠ
(참고)
- 큐 클래스 사용법 (q.peek(), q.poll() 등)
[Java] Queue 자료형
Queue 란? Queue는 선입선출(FIFO, First In First Out)방식의 자료형입니다. 먼저 입력되는 데이터가 먼저 나가는 구조로 되어있습니다. 일반적인 줄서기와 동일하다고 보시면 됩니다. Queue 종류 // 기본
www.oofbird.me
[Java] 자바 Queue 클래스 사용법 & 예제 총정리
Queue란? Queue의 사전적 의미는 무엇을 기다리는 사람, 차량 등의 줄 혹은 줄을 서서 기다리는 것을 의미하는데 이처럼 줄을 지어 순서대로 처리되는 것이 큐라는 자료구조입니다. 큐는 데이터를
coding-factory.tistory.com
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 1] 약수의 개수와 덧셈 (0) | 2023.02.24 |
---|---|
[프로그래머스/Lv. 2] 올바른 괄호 (0) | 2023.02.23 |
[프로그래머스/Lv. 3] 같은 숫자는 싫어 (1) | 2023.02.22 |
[프로그래머스/Lv. 2] 위장 (0) | 2023.02.22 |
[프로그래머스/Lv. 2] 전화번호 목록 (0) | 2023.02.22 |