[프로그래머스] LV2 기능 개발 스택/큐 JavaScript

2022. 1. 25. 15:07·지난 글 모음
반응형

프로그래머스 lv2 기능 개발 스택/큐

레벨: 2

언어: JavaScript


문제 풀러 가기

문제 설명

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.

또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.

먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요.

입력 값

  • progresses: 순서대로 작업의 진도가 적힌 정수 배열
  • speeds:개발 속도가 적힌 정수 배열

출력 값

  • result: 각 배포마다 몇 개의 기능이 배포되는지 적힌 정수

📑풀이 아이디어

  • 100에서 진행된 작업을 빼고 개발 속도로 나누면 몇일이 걸리는지 알 수 있다.
  • 남은 일수를 배열에 넣고 뒤의 일자와 비교하여 한번에 배포가능한 수를 카운트한다.

📋풀이 코드

function solution(progresses, speeds) {
  let answer = [];
  let arr = [];
  let cnt = 1;
  let temp;

  progresses.map((el, i) => {
    arr[i] = Math.ceil((100 - el) / speeds[i]);
  });
  temp = arr[0];
  for (let i = 1; i < arr.length; i++) {
    if (temp >= arr[i]) {
      cnt += 1;
    } else {
      answer.push(cnt);
      cnt = 1;
      temp = arr[i];
    }
  }
  answer.push(cnt);

  return answer;
}

코드 라인별 설명

progresses.map((el, i) => { arr[i] = Math.ceil((100 - el) / speeds[i]); });
arr라는 배열에 각 작업이 완료되기에 필요한 날짜를 저장한다.

temp = arr[0];
temp에 첫번째 작업일을 넣는다.

for (let i = 1; i < arr.length; i++)
temp에 첫번째 요소를 넣었기에 두번째부터 배열 끝까지 반복문을 돌린다.

if (temp >= arr[i]) { cnt += 1; }

temp에 저장된 작업일이 arr[i]의 작업일보다 크거가 같은 경우 동시에 배포가 가능하다는 의미이다
동시에 배포가 가능한경우 cnt를 1올려준다.

else { answer.push(cnt); cnt = 1; temp = arr[i]; }
동시에 배포가 가능하지 않은 경우 answer 배열에 저장된 cnt를 넣고 cnt를 1로 초기화 한다.
그리고 temp에 arr[i]의 값을 넣고 다시 위의 내용을 반복한다.


남은 일자를 계산하는 아이디어를 가지고 빠르게 문제를 해결할 수 있었다.
언제나 더 좋은 방법이나 틀린 부분은 지적 바랍니다.

반응형

'지난 글 모음' 카테고리의 다른 글

[React Hooks] input onChange 사용법 (onChange)사용 예시  (0) 2022.01.26
[프로그래머스] lv2 주차 요금 계산 JavaScript  (0) 2022.01.26
AWS EC2 서버 구매, 접속방법  (0) 2022.01.24
[JavaScript] - 원시 값과 참조 값  (0) 2022.01.24
[JavaScript] - var를 말고 const, let을 써 야하는 이유  (2) 2022.01.24
'지난 글 모음' 카테고리의 다른 글
  • [React Hooks] input onChange 사용법 (onChange)사용 예시
  • [프로그래머스] lv2 주차 요금 계산 JavaScript
  • AWS EC2 서버 구매, 접속방법
  • [JavaScript] - 원시 값과 참조 값
코딩하자영아
코딩하자영아
코딩공부내용 정리
  • 코딩하자영아
    코드치고 무게치고
    코딩하자영아
  • 전체
    오늘
    어제
    • 분류 전체보기 (84) N
      • 개발 (3) N
      • 지난 글 모음 (81)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    sw 정글
    리액트
    Express
    SW정글
    HTML
    Coding Test
    malloc-lab
    Spring
    템플릿 문자열
    자바스크립트
    React
    백준
    html input
    sw정글사관학교
    JavaScrpit
    회원가입
    프로그래머스
    정글sw
    python
    PINTOS
    목록 창 만들기
    onChange
    코딩테스트
    회원가입 폼
    javascript
    dfsbfs
    사용자 정의 객체
    conding test
    node.js
    자바스크립트 문자열 변수
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
코딩하자영아
[프로그래머스] LV2 기능 개발 스택/큐 JavaScript
상단으로

티스토리툴바