프로그래머스 코딩테스트 연습 기능개발(스택/큐) 문제
코딩테스트 연습으로 해시의 위장 문제를 풀어보았다.
우선 내가 작성한 코드이고, 성공했지만, 시간내에 풀지는 못했다…
문제 풀어보기
데이는 걸리는 시간으로 처음 순서대로 큐를 이용하여 큐에 값을 넣고 그 값들을 나오는대로 비교해 나갔다. 마지막
tmp = que.poll();
while(que.peek() != null) {
if(tmp>=que.peek()) {
count++;
que.poll();
}else {
arr.add(count);
count = 1;
tmp = que.poll();
}
if(que.peek() == null) {
arr.add(count);
}
}
이 부분에서 뇌절이 와버려서, 시간이 걸렸고 tmp >= que.peek() 부분에서 >=가 아닌 >로 해버려서 또 시간을 버렸다.
밑에는 다른 사람의 풀이의 처음에 있는 분의 풀이이다.
import java.util.ArrayList;
import java.util.Arrays;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int[] dayOfend = new int[100];
int day = -1;
for(int i=0; i<progresses.length; i++) {
while(progresses[i] + (day*speeds[i]) < 100) {
day++;
}
dayOfend[day]++;
}
return Arrays.stream(dayOfend).filter(i -> i!=0).toArray();
}
}
하, 람다식 진짜… ㅋㅋㅋ 오늘부터라도 공부한다 내가. 그리고 Arrays.stream 이 부분이 자주보이는데 여기도 확인을 해봐야 할 것 같다.