/ CODINGTEST

프로그래머스 코딩테스트 연습 기능개발(스택/큐) 문제

코딩테스트 연습으로 해시의 위장 문제를 풀어보았다. 우선 내가 작성한 코드이고, 성공했지만, 시간내에 풀지는 못했다…
문제 풀어보기

데이는 걸리는 시간으로 처음 순서대로 큐를 이용하여 큐에 값을 넣고 그 값들을 나오는대로 비교해 나갔다. 마지막

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 이 부분이 자주보이는데 여기도 확인을 해봐야 할 것 같다.