๐Ÿ€TIL๐Ÿ€[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Coding Test ์Šคํ„ฐ๋””1

PYMยท2023๋…„ 8์›” 16์ผ
0

๐Ÿ€TIL๐Ÿ€Coding Test

๋ชฉ๋ก ๋ณด๊ธฐ
1/16
post-thumbnail

Q1. ๊ฐ๋„๊ธฐ

๊ฐ์—์„œ 0๋„ ์ดˆ๊ณผ 90๋„ ๋ฏธ๋งŒ์€ ์˜ˆ๊ฐ, 90๋„๋Š” ์ง๊ฐ, 90๋„ ์ดˆ๊ณผ 180๋„ ๋ฏธ๋งŒ์€ ๋‘”๊ฐ 180๋„๋Š” ํ‰๊ฐ์œผ๋กœ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ angle์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์˜ˆ๊ฐ์ผ ๋•Œ 1, ์ง๊ฐ์ผ ๋•Œ 2, ๋‘”๊ฐ์ผ ๋•Œ 3, ํ‰๊ฐ์ผ ๋•Œ 4๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿฃ๋‚ด ํ’€์ด

function solution(angle) {
    if(angle < 90){
        return 1
    }
    else if(angle === 90){
        return 2
    }
    else if(angle < 180){
        return 3
    }
    else if(angle === 180){
        return 4
    }
}

๐Ÿ”์ธ์ƒ๊นŠ์—ˆ๋˜ ํ’€์ด

function solution(angle) {
   return [0, 90, 91, 180].filter(x => angle>=x).length;
}
  • filter ๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•ด์„œ ์ด๋ ‡๊ฒŒ ํ’€๋‹ค๋‹ˆ..! ์ƒ๊ฐ์ง€๋„ ๋ชปํ–ˆ๋˜ ๋ฐฉ๋ฒ•์ด๋ผ ์‹ ์„ ํ–ˆ๋‹ค.

Q2. ๋ฐฐ์—ด์˜ ํ‰๊ท ๊ฐ’

์ •์ˆ˜ ๋ฐฐ์—ด numbers๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. numbers์˜ ์›์†Œ์˜ ํ‰๊ท ๊ฐ’์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿฃ๋‚ด ํ’€์ด

function solution(numbers) {
    let allSum = 0;
    for(let i of numbers){
        allSum += i;
    }
    return allSum / numbers.length
}

๐Ÿ”์ธ์ƒ๊นŠ์—ˆ๋˜ ํ’€์ด

function solution(numbers) {
    var answer = numbers.reduce((a,b) => a+b, 0) / numbers.length;
    return answer;
}
  • reduce ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ์ ์ด ์ธ์ƒ๊นŠ์—ˆ๋‹ค.
  • reduce
    • ๋ฐฐ์—ด์˜ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ’์„ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ์ถ•์†Œํ•ด์ฃผ๋Š” ๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ
    • Array.reduce(์ฝœ๋ฐฑํ•จ์ˆ˜, ์ดˆ๊ธฐ๊ฐ’) ์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์“ฐ์ธ๋‹ค.
    • reduce ๋ฉ”์„œ๋“œ์˜ ์ฒซ๋ฒˆ์งธ ์ธ์ˆ˜ ์ฝœ๋ฐฑํ•จ์ˆ˜์˜ a๋Š” ๋ˆ„์  ๊ฐ’, b ๋Š” ํ˜„์žฌ ๊ฐ’์ด๋‹ค.
    • ์ฒซ๋ฒˆ์งธ ์ธ์ˆ˜์— ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด์˜ค๋ฏ€๋กœ, ๊ณ ์ฐจํ•จ์ˆ˜์ด๋‹ค.
    • ๋‘๋ฒˆ์งธ ์ธ์ˆ˜๋Š” ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค

Q3. ์ตœ๋Œ“๊ฐ’ ๋งŒ๋“ค๊ธฐ

์ •์ˆ˜ ๋ฐฐ์—ด numbers๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. numbers์˜ ์›์†Œ ์ค‘ ๋‘ ๊ฐœ๋ฅผ ๊ณฑํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ“๊ฐ’์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿฃ๋‚ด ํ’€์ด

function solution(numbers) {
    let maxNum = numbers[0];
    
    for(let i =0; i<numbers.length; i++){
        for(let j=i+1; j<numbers.length; j++){
            if(maxNum < numbers[i] * numbers[j]){
                maxNum = numbers[i] * numbers[j];
            }
        }
    }
    
    return maxNum;
}

๐Ÿ”์ธ์ƒ๊นŠ์—ˆ๋˜ ํ’€์ด

function solution(numbers) {
    numbers.sort((a,b)=>b-a);
    return numbers[0]*numbers[1];
}
  • ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์„œ, 0๋ฒˆ ์ธ๋ฑ์Šค ๊ฐ’๊ณผ 1๋ฒˆ ์ธ๋ฑ์Šค ๊ฐ’์„ ๊ณฑํ•˜๋ฉด ๋” ๊น”๋”ํ•˜๊ฒŒ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค!

Q4. ์–‘๊ผฌ์น˜

๋จธ์“ฑ์ด๋„ค ์–‘๊ผฌ์น˜ ๊ฐ€๊ฒŒ๋Š” 10์ธ๋ถ„์„ ๋จน์œผ๋ฉด ์Œ๋ฃŒ์ˆ˜ ํ•˜๋‚˜๋ฅผ ์„œ๋น„์Šค๋กœ ์ค๋‹ˆ๋‹ค. ์–‘๊ผฌ์น˜๋Š” 1์ธ๋ถ„์— 12,000์›, ์Œ๋ฃŒ์ˆ˜๋Š” 2,000์›์ž…๋‹ˆ๋‹ค. ์ •์ˆ˜ n๊ณผ k๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์–‘๊ผฌ์น˜ n์ธ๋ถ„๊ณผ ์Œ๋ฃŒ์ˆ˜ k๊ฐœ๋ฅผ ๋จน์—ˆ๋‹ค๋ฉด ์ด์–ผ๋งˆ๋ฅผ ์ง€๋ถˆํ•ด์•ผ ํ•˜๋Š”์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

๐Ÿฃ๋‚ด ํ’€์ด

function solution(n, k) {
    // ์„œ๋น„์Šค๋กœ ๋ฐ›์€ ์Œ๋ฃŒ์ˆ˜ ๊ฐœ์ˆ˜ 
    let  freeDrink = Math.floor(n / 10);
    
    return (12000 * n) + (2000 * k) - (2000 * freeDrink)
    
}

๐Ÿ”์ธ์ƒ๊นŠ์—ˆ๋˜ ํ’€์ด

function solution(n, k) {
    k-=~~(n/10);
    if (k < 0) k = 0;
    return n*12000+k*2000;
}
  • ์ฒ˜์Œ ๋ณด๋Š”...! 'ํ‹ธํŠธ ๋ฌธ๋ฒ•'!

โœจTilt ์—ฐ์‚ฐ์ž๋ž€?

~ = -(n+1)

์ฆ‰, ~10๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด -9๊ฐ€ ๊ฒฐ๊ณผ ๊ฐ’์œผ๋กœ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

์œ„ ํ’€์ด์—์„œ ์ฒ˜๋Ÿผ ~~ ๋กœ ์‚ฌ์šฉํ•˜๋ฉด Math.floor์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.
ํ•˜์ง€๋งŒ ์Œ์ˆ˜์—์„œ๋Š” ์ฐจ์ด๋ฅผ ๋ณด์ด๋Š”๋ฐ,

Math.floor(-10.123) ์€ -11์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฐ ๋น„ํ•ด, ~~์˜ ๊ฒฝ์šฐ -10์„ ์ถœ๋ ฅํ•œ๋‹ค.

๊ทธ ์™ธ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ ๋œ ๊ฒƒ & ๊ธฐ์–ตํ•  ๊ฒƒ

  1. ๋ฐฐ์—ด์„ ๋’ค์ง‘์„ ๋• reverse ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ž!
    function solution(num_list) {
        return num_list.reverse()
    }
  2. Math ํ•จ์ˆ˜ ์ •๋ฆฌ
  • Math.ceil() : ์†Œ์ˆ˜์  ์˜ฌ๋ฆผ, ์ •์ˆ˜ ๋ฐ˜ํ™˜
  • Math.floor() : ์†Œ์ˆ˜์  ๋ฒ„๋ฆผ, ์ •์ˆ˜ ๋ฐ˜ํ™˜
  • Math.round() : ์†Œ์ˆ˜์  ๋ฐ˜์˜ฌ๋ฆผ, ์ •์ˆ˜ ๋ฐ˜ํ™˜
  1. ํŠน์ • ๋ฌธ์ž ์ œ๊ฑฐํ•œ ๋ฌธ์ œ์—ด ๋ฐ˜ํ™˜
    ์ „์ฒด๋ฌธ์ž์—ด.split(์ œ๊ฑฐํ• ๋ฌธ์ž).join('')
profile
๋ชฉํ‘œ๋Š” "ํ•จ๊ป˜ ์ผํ•˜๊ณ  ์‹ถ์€, ํ•จ๊ป˜ ์ผํ•ด์„œ ์ข‹์€" Front-end ๊ฐœ๋ฐœ์ž

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