현금만을 사용하는 매점의 점원인 당신은 현재 매장에 동전 밖에 남지 않은 것을 확인했습니다.
손님들이 몰려오고 있고, 당신은 각각의 손님에게 최소 개수의 동전만을 사용해 거스름돈을 전달해야합니다.
현재 가지고 있는 동전은 1원, 5원, 10원, 50원, 100원, 500원, 이상 여섯개 종류가 있습니다.
인자로 받는 change는 거슬러주어야 하는 액수입니다.
최소 개수의 동전을 사용해 주어진 change와 같은 값을 만들고 사용된 동전의 개수를 리턴해주세요.
예를 들어 change가 4600원이라면, 500원짜리 9개, 100원짜리 1개, 최소 10개로 완성되기 때문에 숫자 10을 리턴합니다.
makeChange(4350) // 12
makeChange(2000) // 4
function makeChange(change) {
// 여기에서 작업하세요.
count = 0
if(change > 500){
count ++
change = change - 500
} else if(change > 100){
count++
change = change - 100
} else if(change > 50){
count++
change = change - 50
} else if(change > 10){
count++
change = change - 10
} else if(change > 5){
count++
change = change - 5
} else if(change > 1){
count++
change = change - 1
}
return count
}
function makeChange(change) {
let result = 0;
const coins = [500, 100, 50, 10, 5, 1];
coins.forEach((e) => {
if (change > 0) {
const coin = Math.floor(change / e);
change -= e * coin;
result += coin;
}
});
return result;
}
function makeChange(change) {
let i = 0;
let countCoin = 0;
const coin = [500, 100, 50, 10, 5, 1];
while (change !== 0) {
const rest = change / coin[i];
const quotient = Math.floor(rest);
countCoin += quotient;
change -= coin[i] * quotient;
i++;
}
return countCoin;
}
shortestWord([ [1], 'codecamp', true, 'code' ]) // 'code'
function shortestWord(arr) {
// 여기에서 작업하세요.
let arr1 = []
let arr2 = []
let answer = ''
for(let i = 0; i < arr.length; i++){
if(typeof(arr[i]) === 'string') {
arr1.push(arr[i])
}
}
for(let i = 0; i < arr1.length; i++){
arr2.push(arr1[i].length)
}
const min = Math.min(...arr2) // 4
for(let i = 0; i < arr1.length; i++){
answer += (min === arr1[i].length ? arr1[i] : '')
}
return answer
}
function shortestWord(arr) {
// 여기에서 작업하세요.
const strArr = arr.filter((e) => {
return typeof e === 'string';
});
let answer = strArr[0];
for (let i = 1; i < strArr.length; i++) {
if (answer.length > strArr[i].length) {
answer = strArr[i];
}
}
return answer;
}
function shortestWord(arr) {
// 여기에서 작업하세요.
return arr.reduce((a, b) => {
if (typeof a === 'string' && typeof b === 'string') {
return a.length <= b.length ? a : b;
} else if (typeof a === 'string') {
return a;
}
return b;
});
}
sortNum([ 2, 3, 1 ]) // [ 1, 2, 3 ]
sortNum([ 400, 501, 23 ]) // [ 23, 400, 501 ]
function sortNum(arr) {
// 여기에서 작업하세요.
return arr.sort((a, b) => a - b);
}
function sortNum(arr) {
// 여기에서 작업하세요.
// 거품정렬(bubble sort) 알고리즘
let temp = 0;
for (let i = 0; i < arr.length; i++) {
for (let j = 1; j < arr.length - i; j++) {
if (arr[j - 1] > arr[j]) {
temp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
stringPattern('abba', 'dog cat cat dog') // true
stringPattern('abcaba', 'cup ice coffee cup ice coffee') // false
stringPattern('abbab', 'a b b a b a b b a b') // false
function stringPattern(pattern, str) {
// 여기에서 작업하세요.
str = str.split(' ');
if (pattern.length !== str.length) return false;
const obj = {};
for (let i = 0; i < str.length; i++) {
if (obj[pattern[i]] === undefined) obj[pattern[i]] = str[i];
else if (obj[pattern[i]] !== str[i]) return false;
}
return true;
}
function stringPattern(pattern, str) {
// 여기에서 작업하세요.
if (pattern.length !== str.length) return false;
str = str.split(' ');
let answer = true;
const hashed = {};
str.forEach((el, i) => {
if (hashed[el] === undefined) hashed[el] = pattern[i];
else if (hashed[el] !== pattern[i]) answer = false;
});
return answer;
}
출처: 코드캠프