๐Ÿ”ฅ #14 javascript(ํ•จ์ˆ˜ ์—ฐ์Šต)

๋ฐ•์ค€์„ยท2022๋…„ 8์›” 27์ผ

javascript

๋ชฉ๋ก ๋ณด๊ธฐ
14/22
post-thumbnail

๐Ÿ”ฅ ํ•จ์ˆ˜ ์—ฐ์Šต

๐Ÿƒโ€โ™‚๏ธ ๋ฌธ์ œ1 "์•ˆ๋…• ๋‚ด ์ด๋ฆ„์€ ์ œ์‹œ์นด์•ผ"๋ผ๋Š” ๋ฌธ์žฅ์„ ํ”„๋ฆฐํŠธํ•˜๋Š” ํ•จ์ˆ˜ 'greetโ€™๋ฅผ ๋งŒ๋“œ์‹œ์˜ค

function greet(){
    console.log("์•ˆ๋…• ๋‚ด ์ด๋ฆ„์€ ์ œ์‹œ์นด์•ผ");
}

์œ„ ์ฝ”๋“œ๋Š” ํ•จ์ˆ˜๋ฅผ greet๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์ฃผ๊ณ console์ฐฝ์— "์•ˆ๋…• ๋‚ด ์ด๋ฆ„์€ ์ œ์‹œ์นด์•ผ" ๋ผ๊ณ  ์ถœ๋ ฅํ•ด์ฃผ๋Š” ์ฝ”๋“œ์ด๋‹ค.

๐Ÿƒโ€โ™‚๏ธ ๋ฌธ์ œ2 ์ด๋ฆ„์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์•„ ๋‹ค์–‘ํ•œ ์ด๋ฆ„์„ ํ”„๋ฆฐํŠธ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์€ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜์‹œ์˜ค ์˜ˆ) โ€œ์•ˆ๋…• ๋‚ด ์ด๋ฆ„์€ ์—๋ฐ€๋ฆฌ์•ผโ€, โ€œ์•ˆ๋…• ๋‚ด ์ด๋ฆ„์€ ํ• ๋ฆฌ์•ผโ€

function greet(Name){
    console.log("์•ˆ๋…• ๋‚ด ์ด๋ฆ„์€",Name,"์•ผ");
    return Name;
}
const Name=greet("์ œ์‹œ์นด");
console.log("์•ˆ๋…• ๋‚ด ์ด๋ฆ„์€",Name,"์ด์•ผ");

์œ„ ์ฝ”๋“œ๋„ ํ•จ์ˆ˜๋ฅผ greet๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์ฃผ๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜์— Name๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์–ด์ค€๋‹ค. console.log("์•ˆ๋…• ๋‚ด ์ด๋ฆ„์€",Name,"์•ผ");์— Name์„ ์“ด ์ด์œ ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์— Name์„ ์ง€์ •ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  const Name=greet("์ œ์‹œ์นด"); ์ด ์ฝ”๋“œ๊ฐ€ Name์— ๊ฐ’์„ ํ• ๋‹นํ•ด์ค€ ๊ฒƒ์ด๋‹ค. ํ•จ์ˆ˜ ์•ˆ์— return Name๊ฐ€ console.log("์•ˆ๋…• ๋‚ด ์ด๋ฆ„์€",Name,"์ด์•ผ");์— ๋ฐ˜ํ™˜์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿƒโ€โ™‚๏ธ ๋ฌธ์ œ3 3๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›๊ณ  ์ฒซ๋ฒˆ์งธ ์ธ์ž๋Š” ๋…„๋„์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž, ๋‘๋ฒˆ์งธ ์ธ์ž๋Š” ์›”์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž, ์„ธ๋ฒˆ์งธ ์ธ์ž๋Š” ์ผ์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž์ด๋‹ค.

์˜ˆ์‹œ

  • ๋…„๋„์ธ์ž๋งŒ ๋ฐ›์„ ๊ฒฝ์šฐ -> "1234๋…„"๊ณผ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ด
  • ๋…„๋„, ์›” ์ธ์ž๋ฅผ ๋ฐ›์„ ๊ฒฝ์šฐ -> "1234๋…„ 5์›”" ๊ณผ ๊ฐ™์€ ๋ฌธ์ž์—ด ๋ฆฌํ„ด
  • ๋…„๋„, ์›”, ์ผ ์ธ์ž๋ฅผ ์ „๋ถ€ ๋ฐ›์„ ๊ฒฝ์šฐ ->"1234/5/6"๊ณผ ๊ฐ™์€ ํ˜•์‹์˜ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”
function meetAt(year, month, day){
    let year;
    let month;
    let day;

    if(day){
        return `${year}/${month}/${day}`;
    }
    if(month){
        return `${year}๋…„${month}์›”`;
    }
    if(year){
        return `${year}๋…„`;
    }
    
    console.log(meetAt(2022)) //๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ๊ฐ’์„ ์ถœ๋ ฅ์„ ํ•  ๊ฒƒ์ด๋‹ค.

์œ„ ์ฝ”๋“œ๋Š” function meetAt(year, month, day) ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์ดํ›„ ํ•จ์ˆ˜ ์•ˆ์— year, month, day ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์ดํ›„ if๋ฌธ์„ ์จ์„œ day๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋“ค์–ด์˜ค๋ฉด "1234/5/6"๊ฐ€ return๋˜์–ด ์ถœ๋ ฅ์ด๋˜๊ณ  month๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋“ค์–ด์˜ค๋ฉด "1234๋…„ 5์›”"๊ฐ€ return๋˜์–ด ์ถœ๋ ฅ๋˜๊ณ  year๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋“ค์–ด์˜ค๋ฉด "1234๋…„"๊ฐ€ return๋˜์–ด ์ถœ๋ ฅ๋˜๋Š” ์ฝ”๋“œ์ด๋‹ค.

โŒ return ${year}/${month}/${day}; ์ด ์ฝ”๋“œ ๊ฐ™์ด ""(ํฐ๋”ฐ์˜ดํ‘œ), ''(์ž‘์€๋”ฐ์˜ดํ‘œ)๊ฐ€ ์•„๋‹Œ ``(๋ฐฑํ‹ฑ)์„ ์“ฐ๋Š” ์ด์œ ๋Š” String ๋ฌธ์ž์—ด ์•ˆ์— ๋™์ ์ธ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ${๋™์ ์ธ๊ฐ’}์ •์ ์ธ๋ฌธ์žฅ์„ ๋„ฃ์–ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์ด๋‹ค.

๐Ÿƒโ€โ™‚๏ธ ๋ฌธ์ œ4 findSmallestElement ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  findSmallestElement ์˜ arr ์ธ์ž๋Š” ์ˆซ์ž ๊ฐ’์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด arr ์˜ ๊ฐ’๋“ค ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๋ฆฌํ„ด ํ•ด์ฃผ์„ธ์š”.

function findSmallestElement(arr){
    let result = arr[0];
    if(arr.length == 0){
        return 0;
    }

    for(let i=1; i<arr.length; i++){
        if(result > arr[i]){ 
            result = arr[i]; 
        } 
    }
    return result;
}
let smallestNumber = findSmallestElement([100,200,3,5,2,1]);
console.log(smallestNumber);

์œ„ ์ฝ”๋“œ๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ ์„ค๋ช…ํ•ด๋ณด์ž.

function findSmallestElement(arr){
    let result = arr[0];
    if(arr.length == 0){
        return 0;
    }

๋จผ์ € ์œ„ ์ฝ”๋“œ๋Š” findSmallestElement(arr) ํ•จ์ˆ˜ ์•ˆ์—๋Š” arr๋ฐฐ์—ด์•ˆ์— ์žˆ๋Š” ๊ฐ’์ด ๋น„์–ด์žˆ์œผ๋ฉด return 0;์„ ํ•ด์„œ 0์„ ๋ฆฌํ„ดํ•˜๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

    for(let i=1; i<arr.length; i++){
        if(result > arr[i]){ 
            result = arr[i]; 
        } 
    }
    return result;

๊ทธ๋ฆฌ๊ณ  i๋Š” i๋ณด๋‹ค arr.length๊ฐ€ ํด๋•Œ ๊นŒ์ง€ i๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ์ดํ›„ if๋Š” result ๊ฐ’์ด arr[i] ๊ฐ’๋ณด๋‹ค ํฐ์ง€ ๋น„๊ตํ•œ๋‹ค. ๋งŒ์•ฝ ํฌ๋‹ค๋ฉด reuslt ๊ฐ’์— arr[i]๋ฒˆ์งธ๋ฅผ ํ• ๋‹นํ•˜๊ณ  return result;๋ฅผ ํ•ด์ค€๋‹ค.

function findSmallestElement(arr){
    let result = arr[0];
    if(arr.length == 0){
        return 0;
    }

    for(let i=1; i<arr.length; i++){
        if(result > arr[i]){ 
            result = arr[i]; 
        } 
    }
    return result;
}
let smallestNumber = findSmallestElement([100,200,3,5,2,1]);
console.log(smallestNumber);

๊ทธ๋Ÿผ ์œ„ ์ฝ”๋“œ๋ฅผ ํ•œ๋ฒˆ์— ์„ค๋ช…ํ•˜์ž๋ฉด, ๋จผ์ € arr[0] arr๋ฐฐ์—ด์ด ๋น„์–ด์žˆ๋‹ค๋ฉด return 0; 0์„ returnํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  findSmallestElement([100,200,3,5,2,1]); ๋ฐฐ์—ด์„ ํ• ๋‹นํ•œ ๊ฐ’์ด๋‹ค. ๊ฒฐ๊ตญ for์•ˆ์— ์žˆ๋Š” ๋‚ด์šฉ์€ result 0๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์žˆ๋Š” 100๊ณผ i๊ฐ€ 1์ธ ์ธ๋ฑ์Šค ๊ฐ’์ธ 200์„ ๋น„๊ตํ•ด result๊ฐ’์ธ 100์ด i๊ฐ’์ธ 200๋ณด๋‹ค ํฌ๋ฉด result๊ฐ’์— ํ• ๋‹นํ•œ๋‹ค. ํ•˜์ง€๋งŒ 200์ด 100๋ณด๋‹ค ํฌ์ง€ ์•Š์•„ result๊ฐ’์— ํ• ๋‹น๋˜์ง€ ์•Š๋Š”๋‹ค. ๊ณ„์† ์ด์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ 100์ด 3๋ณด๋‹ค ํฐ์ง€ ๋น„๊ตํ•˜๊ณ  ์ฐธ์ด๋ฉด ๋˜ 3๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค. ๊ฒฐ๊ตญ ๊ฐ™์€๋ฐฉ๋ฒ•์œผ๋กœ ํ•˜๋‹ค๋ณด๋ฉด ์ œ์ผ ์ž‘์€ ๊ฐ’์ธ 1์ด ์ถœ๋ ฅ์ด ๋œ๋‹ค.

๐Ÿƒโ€โ™‚๏ธ ๋ฌธ์ œ5 ๋ˆ์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์œผ๋ฉด ๋ช‡๊ฐœ์˜ ์ง€ํ์™€ ๋™์ „์ด ํ•„์š”ํ•œ์ง€ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ์‹œ์˜ค.

์˜ˆ์‹œ
๊ฐ’์ด 12300์ธ ๊ฒฝ์šฐ

50000 X 0
10000 X 1
5000 X 0
1000 X 2
500 X 0
100 X 3

let unit = [50000, 10000, 5000, 1000, 500, 100]; 
function changeCalculate(money){ 
    for(let i=0; i<unit.length; i++){ 
        let num = Math.floor(money/unit[i]);
                                            
        console.log(unit[i]+"X"+num);
        money = money - (unit[i]*num); 
    }
}
changeCalculate(12300);

์œ„ ์ฝ”๋“œ๋Š” unit๋ณ€์ˆ˜์— ๋ฐฐ์—ด๊ฐ’์ธ [50000, 10000, 5000, 1000, 500, 100]; ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค. ์ดํ›„
changeCalculate(money)ํ•จ์ˆ˜ ์•ˆ์— for๋ฌธ์„ ์จ i๋Š” 0๋ถ€ํ„ฐ i๋ณด๋‹ค unit.length๊ฐ€ ํด ๋•Œ๊นŒ์ง€ i๋ฅผ ์ฆ๊ฐ€ํ•˜๊ณ  ๋ณ€์ˆ˜ num์— Math.floor(money/unit[i]);๋ฅผ ํ•ด์ค€๋‹ค.

โŒ Math.floor๋Š” ์†Œ์ˆ˜๊ฐ’์ด ์กด์žฌ ํ•  ๋•Œ ์†Œ์ˆ˜๊ฐ’์„ ๋ฒ„๋ฆฌ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

๊ณง changeCalculate(12300); ๊ฐ’์ด money ๋งค๊ฐœ๋ณ€์ˆ˜์— ํ• ๋‹น๋˜๊ณ  ๊ทธ money๋ฅผ unit[i]๋ฒˆ ์งธ๋ฅผ ๋‚˜๋ˆˆ ๊ฐ’ num๊ฐ’์— ํ• ๋‹นํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํ˜„์žฌ i๋Š” ํ˜„์žฌ 0์ด๋‹ค. ๊ทธ๋Ÿผ ๋ฐฐ์—ด ์ธ๋ฑ์Šค 0์ธ 50000์„ 12300/50000์„ ํ•ด ๋‚˜์˜จ ์ •์ˆ˜๋งŒ num์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ž ๊ทผ๋ฐ ์—ฌ๊ธฐ์„œ money = money - (unit[i]*num);์ด ํ•จ์ˆ˜๊ฐ€ ์™œ ํ•„์š”ํ•˜๋ƒ, ๊ทธ๊ฒƒ์€ 12300/50000๋กœ ๋‚˜๋ˆŒ๋•Œ ์ •์ˆ˜์ธ 0๊ฐ’์ด num์— ํ• ๋‹น๋œ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋Ÿผ i๊ฐ€ ์ฆ๊ฐ€ํ•ด 10000๊ฐ’์ด ๋˜ ๋‚˜๋ˆ ์ ธ์•ผํ•˜๋Š”๋ฐ ๋‹ค์‹œ 12300/10000์ด ๋ ๊ฒƒ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ• ๋‹น ๋œ money๊ฐ’์ด 12300์ด์—ฌ์„œ ๊ทธ๋ ‡๋‹ค. ๊ทธ๋ž˜์„œ money์—์„œ (unit[i]xnum)์„ ๋นผ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด 12300-(10000x1)์ธ ์…ˆ์ด๋‹ค. ๊ทธ๋Ÿผ 2300์ด ๋‚จ๋Š”๋‹ค. ์ด๋ ‡๊ฒŒ ๋‚จ๋Š” ๊ฐ’์„ ๊ณ„์†ํ•ด์„œ ๋‚˜๋ˆ„๋ฉด ํ•„์š”ํ•œ ์ง€ํ์™€ ๋™์ „์ด ๋‚˜์˜จ๋‹ค.

profile
์•ˆ๋…•ํ•˜์„ธ์š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. ๊ธ€์„ ์ด์ „ ์ค‘์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€