프로그래머스_기능개발 JAVA

2025. 2. 6. 20:50·알고리즘/알고리즘 풀이
반응형

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

원래 3차원 어쩌구 문제가 있었는데 프로그래머스 안에서 검색해보니 나오질 않아서 최신 문제들로 다시 추천해달라고 했다.

그래서 오늘 풀 문제는 '기능개발'이다.

 

이번 문제는 처음 풀어보는 문제였다. 그래서 과거 코드는 없다.

문제를 읽었을 땐 문제에서 뭔가 강조하는 것 같았던 '작업 일수'는 별로 신경 안 써도 될 거 같았는데..

아니 문제를 풀다보니깐 '작업 일수'가 되게 중요한 거였다..!

역시 문제에 나오는 내용은 허튼 것이 없다.

 

코드

import java.util.*;

class Solution {
    public List<Integer> solution(int[] progresses, int[] speeds) {
        List<Integer> answer = new ArrayList<>();
        int success = 100;
        Deque<Integer> deque = new ArrayDeque<>();
        
        // 작업 종료일 구해서 deque에 넣기
        for(int i = 0; i < progresses.length; i++) {
            int progress = progresses[i];
            int speed = speeds[i];
            
            int endDate = (int)Math.ceil((double)(success - progress) / (double)speed);
            deque.offer(endDate);
        }
        
        int prevEndDate = deque.poll();
        int doneTaskCnt = 1;
        while(!deque.isEmpty())
        {
            if(prevEndDate >= deque.peek()) {
                deque.poll();
                doneTaskCnt++;
            } else {
                answer.add(doneTaskCnt);
                prevEndDate = deque.poll();
                doneTaskCnt = 1;
            }
            
            if(deque.isEmpty()) {
                answer.add(doneTaskCnt);
            }
        }
        return answer;
    }
}

 

짧게 설명해보자면 작업일수를 먼저 구해서 deque에 넣고 (기준 일수가 됨)

현재 작업일수보다 다음 작업 일수가 같거나 작으면 같이 배포되니까 ++ 해주고 아니면 

배포 된 기능 수를 answer 리스트에 넣고 작업일수 기준을 업데이트해줬다.

 

근무지 점심시간에 풀은거라 보안 상 캡처가 안돼서;;

3점을 맞았는데 캡쳐본이 안올라간다.

 

오늘도 즐거운 코딩!!!

반응형
저작자표시 비영리 변경금지 (새창열림)
'알고리즘/알고리즘 풀이' 카테고리의 다른 글
  • 프로그래머스_최빈값 구하기 JAVA
  • 프로그래머스_예산 JAVA
  • 프로그래머스_두 개 뽑아서 더하기 JAVA
  • 프로그래머스_체육복 JAVA
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    react
    SpringBoot를 이용한 RESTful Web Service 개발
    토비의스프링부트
    자바스크립트
    JPA
    QueryDSL
    프론트엔드
    운영체제
    RESTful
    Java
    에러해결
    알고리즘
    Spring
    SQL
    스프링부트
    기출문제
    egov
    방통대
    토이프로젝트
    springboot
    개발자
    인프런
    백준
    MSA
    IT
    넥사크로
    코딩테스트
    전자정부프레임워크
    프로그래머스
    oracle
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
프로그래머스_기능개발 JAVA
상단으로

티스토리툴바