💡 오늘의 학습 키워드
- 큐
✅ 오늘 공부한 내용
- 큐에 대하여 학습하였다!
- 오늘의 프로그래머스 문제! 기능개발
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
👀 오늘의 회고
🤣 오늘의 문제점
- 일단 혼자서 초반에 너무 깊게 생각하다가 이상하게 몇 시간씩 삽질을 했다.
- 이성을 되찾고 돌아보니 그렇게까지 했었어야 했나하는..생각이 🤔
🔥 어떤 시도를 했는가?
- 일단 큐에 꽃혀서 막 이것 저것 추가했었었다.
- 초반에는 for문을 돌리면서 날짜에 맞춰서 100퍼센트가 되면 제거하고 total에 넣는 방식으로 짰으나 이 시도가 실패한 시도였다는 것을 뒤늦게 깨달았다.
- 그래서 새로 참고했던 방안이 미리 구해야하는 날짜를 넣어둔 뒤 해당 날짜들을 제거하는 방향이었다.
- 자세한 코드 설명은 아래 코드에 첨부한다!
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
ArrayList<Integer> arr = new ArrayList<>();
Queue<Integer> q = new LinkedList<>();
int len = speeds.length;
// 남은 일수를 계산한다.
for(int i = 0; i < len; i++){
if((100 - progresses[i]) % speeds[i] == 0){
q.add((100 - progresses[i]) / speeds[i]);
} else {
q.add(((100 - progresses[i]) / speeds[i]) + 1);
}
}
// 1번은 무조건적으로 빠져야 한다. 1번 기능이 빠지지 않는 다면 뒷 기능도 전혀 빠질 수 없기 때문
int x = q.poll();
int count = 1;
// q의 모든 값이 없어질 때까지 반복
while(!q.isEmpty()){
// 만약 x번째 남은 날보다 n번째 기능의 남은 날이 크거나 같다면 같이 배포!
// n번째 기능 제거
if(x >= q.peek()){
count++;
q.poll();
} else {
// 아니라면 총 값을 list에 추가해준다.
arr.add(count);
count = 1;
x = q.poll();
}
}
// 마지막 기능 까지 더한다.
arr.add(count);
int[] answer = new int[arr.size()];
for(int i = 0; i < answer.length; i++){
answer[i] = arr.get(i);
}
return answer;
}
}
👏 무엇을 새로 알았는가?
- 큐!
// Queue 사용 법~
import java.util.*;
Queue<레퍼런스 타입> q = new LinkedList<>();
// Queue에 값 넣기
q.add(value);
// 맨 앞에 있는 숫자 제거하는 겸 어떤 숫자인지 확인한다.
// poll과 remove의 차이점은 poll은 값이 없다면 null을 반환하지만
// remove는 Exception을 발생시킨다는 것
System.out.println(q.poll());
// q가 비어있는지 boolean 값으로 출력
System.out.println(q.isEmpty());
👩💻 내일은 무엇을 학습할 것인가?
- 항해 99 문제 풀기
- 자소서 작성
- 원티드 문제 풀기....
- 책 읽기
'개인 공부 > TIL' 카테고리의 다른 글
[ TIL - PGS ] 99클럽 코테 스터디 10일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.31 |
---|---|
[ TIL - PGS ] 99클럽 코테 스터디 9일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.30 |
[ TIL - PGS ] 99클럽 코테 스터디 7일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.28 |
[ TIL - PGS ] 99클럽 코테 스터디 6일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.27 |
[ TIL - PGS ] 99클럽 코테 스터디 5일차 TIL + 오늘의 학습 가이드 (0) | 2024.07.26 |