어제보다 뭐라도 더 알자

공부를 정리하고, 재사용하기 위한 블로그입니다. 잘못된 부분이있다면 댓글로 알려주세요~~

자바 스크립트 공부/프로그래머스 코딩테스트

자바스크립트 22.09.06 프로그래머스 코딩테스트 문제 풀기

chord 2022. 9. 6. 16:27
320x100

https://school.programmers.co.kr/learn/courses/30/lessons/12982

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

총 예산을 최대한 많은 부서(각 부서는 신청금액이 다릅니다.)에게 주세요.

 

저의 풀이

function solution(d, budget) {
  let answer = 0;

  d.sort((a, b) => a - b);

  for (let i = 0; i < d.length; i++) {
    if (budget >= d[i]) {
      budget -= d[i];
      answer += 1;
    }
  }
  return answer;
}

 

각 부서의 필요 금액을 낮은 금액부터 정렬하고 낮은 금액부터 지급하면 최대한 많은 부서에 정해진 예산을 나눠 줄 수 있을 거라고 생각했습니다.

 

  d.sort((a, b) => a - b);

각 부서의 신청금액을 작은 숫자 부터 큰 숫자 순서로 정렬했습니다.

  for (let i = 0; i < d.length; i++) {
    if (budget >= d[i]) {
      budget -= d[i];
      answer += 1;
    }

위를 반복문을 이용해서 낮은 신청금액부터 큰 신청금액까지 진행했습니다. 

반복문이 진행되면서 총 예산이 부서의 신청금 보다 크거나 같으면 총 예산에서

부서의 신청금을 차감하고 지급한 부서숫자(answer)에 + 1을 해줬습니다

총 예산이 신청금액보다 적으면 그냥 반복문이 진행됩니다.
  }
  return answer;
}

 

자바스크립트 배열 정렬 arr.sort((a, b) => a - b)

 

자바스크립트 배열 정렬 arr.sort((a, b) => a - b)

https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞..

chord.tistory.com

 

다른분들의 풀이는 비슷하서 생략 하겠습니다.

320x100