2**53 - 1 + 25
// 9007199254741016
123123123123123123123123123123123123123123123123
//1.2312312312312312e+47, 이상한 형태로 나온다?
a= Number.MAX_SAFE_INTEGER // 9007199254740991
Number.isSafeInteger( a ) // true
Number.isSafeInteger( a+1 ) // false
Number.isSafeInteger() - JavaScript | MDN
// S사에서는 각 부서에 필요한 물품을 지원해 주기 위해
// 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다.
// 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다.
// 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다.
// 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다.
// 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며,
// 1,000원보다 적은 금액을 지원해 줄 수는 없습니다.
// 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때,
// 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요.
// d는 부서별로 신청한 금액이 들어있는 배열이며,
// 길이(전체 부서의 개수)는 1 이상 100 이하입니다.
// d의 각 원소는 부서별로 신청한 금액, 부서별 신청 금액은 1 이상 100,000 이하의 자연수입니다.
// budget은 예산을 나타내며, 1 이상 10,000,000 이하의 자연수입니다.
function solution(d, budget) {
const answer = [];
// 모든 부서가 신청한 금액을 낮은 금액부터 높은 금액까지 정렬
d.sort((a,b)=> a-b)
// 부서들이 신청한 금액의 총합
let sum = 0
for (let i = 0 ; i <d.length; i++){
// d[i] : 각각의 부서가 신청한 금액
sum += d[i]
if(sum<= budget){
answer.push(d[i])
}
}
return answer.length
}
// sort(),filter() 사용한 풀이
function solution(d, budget) {
const answer = d.sort((a,b)=> a-b).filter(money =>{
// 총 예산을 지원금에서 차감
budget -=money
if (budget >=0){
return money
}
})
return answer.length
}
// 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여
// F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.
// 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수,
// solution을 완성해 주세요.
// 돌릴 때마다 나누면 속도 나오고 통과
// 마지막에 1234567 나누면 속도 안나온당! safeInteger가 아니라 실패~ (=너무 큰 수라서!)
function solution(n) {
// 피보나치 수열을 저장하는 배열
// 0,1을 초기값으로 설정
let answer = [0,1]
for (let i = 2 ; i <=n ; i++){
answer[i] = (answer[i-1] +answer[i-2] ) % 1234567
}
return answer[n]
// return answer[n] % 1234567
// 이건 안됨 ㅎㅎ
}
// reduce() 사용한 풀이
function solution(n) {
let prev = 0 // 0번째 피보나치 수의 결과
let next = 1 // 1번째 피보나치 수의 결과
let sum = prev + next // 2번째 피보나치 수의 결과
const answer = new Array(n-1).fill(1).reduce( cur => {
sum = (prev + cur) % 1234567
prev = cur
next = sum
return sum
},sum)
return answer
}
<aside> 🤓 결제가 어떻게 이뤄지는지 그 과정이랑 결제가 어떻게 DB에 적용되는지 알아볼까?
</aside>