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

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

๐Ÿ€TIL๐Ÿ€Coding Test

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

Q1. n๊ฐœ ๊ฐ„๊ฒฉ์˜ ์›์†Œ๋“ค

์ •์ˆ˜ ๋ฆฌ์ŠคํŠธ num_list์™€ ์ •์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ, num_list์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์›์†Œ๊นŒ์ง€ n๊ฐœ ๊ฐ„๊ฒฉ์œผ๋กœ ์ €์žฅ๋˜์–ด์žˆ๋Š” ์›์†Œ๋“ค์„ ์ฐจ๋ก€๋กœ ๋‹ด์€ ๋ฆฌ์ŠคํŠธ๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿฃ๋‚ด ์ฝ”๋“œ

function solution(num_list, n) {
    let result = []
    for(let i = 0; i < num_list.length; i+=n ){
        result.push(num_list[i]);
    }
    
    return result;
}

๐Ÿ”์ธ์ƒ๊นŠ์—ˆ๋˜ ์ฝ”๋“œ

const solution = (num_list, n) => 
num_list.filter((_, idx) => !(idx % n))
  • for๋ฌธ์ด ์•„๋‹Œ filter๋กœ ํ•ด๊ฒฐ!

  • ํ•ด๋‹น ์š”์†Œ์˜ ์ธ๋ฑ์Šค๊ฐ€ ์ง์ˆ˜๊ฐ€ ์•„๋‹Œ ์• ๋“ค๋งŒ ํ•„ํ„ฐ๋ง.

  • ์–ธ๋”๋ฐ” ๋ณ€์ˆ˜

    • ์–ธ๋”๋ฐ”๋กœ ํ‘œ์‹œํ•œ ์ธ์ž๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜๋ผ๋Š” ์˜๋ฏธ

    • ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์–ธ๋”๋ฐ”( _ )๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ JavaScript ๊ฐœ๋ฐœ์ž๋“ค์˜ ๊ด€์Šต์ด๋ผ๊ณ  ํ•œ๋‹ค!

    • ์ฆ‰, ์–ด๋–ค ํ•จ์ˆ˜์˜ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ํ‘œํ˜„!

      • ์œ„ ์ฝ”๋“œ์—์„œ๋Š” _ = ๊ทธ ์š”์†Œ์˜ ๊ฐ’์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ๊ฐ’์€ ์ •์ž‘ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ์ธ๋ฑ์Šค๋งŒ ํ•จ์ˆ˜ ์—ฐ์‚ฐ์— ์‚ฌ์šฉ๋˜๋‹ˆ, ๊ตณ์ด ํ•„์š”์—†๋Š” ๋ณ€์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์–ธ๋”๋ฐ”๋กœ ์ฒ˜๋ฆฌํ•œ ๊ฒƒ! ์˜คํ˜ธ๋ผ!!

Q2. ์ˆ˜ ์กฐ์ž‘ํ•˜๊ธฐ 1

์ •์ˆ˜ n๊ณผ ๋ฌธ์ž์—ด control์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. control์€ "w", "a", "s", "d"์˜ 4๊ฐœ์˜ ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, control์˜ ์•ž์—์„œ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๋ฌธ์ž์— ๋”ฐ๋ผ n์˜ ๊ฐ’์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

"w" : n์ด 1 ์ปค์ง‘๋‹ˆ๋‹ค.
"s" : n์ด 1 ์ž‘์•„์ง‘๋‹ˆ๋‹ค.
"d" : n์ด 10 ์ปค์ง‘๋‹ˆ๋‹ค.
"a" : n์ด 10 ์ž‘์•„์ง‘๋‹ˆ๋‹ค.
์œ„ ๊ทœ์น™์— ๋”ฐ๋ผ n์„ ๋ฐ”๊ฟจ์„ ๋•Œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋‚˜์˜ค๋Š” n์˜ ๊ฐ’์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

๐Ÿฃ๋‚ด ์ฝ”๋“œ

function solution(n, control) {
    let copyN = n;
    
    for(let i of control){
        i === 'w' ? copyN++ : i === 's' ? copyN-- :
        i === 'd' ? copyN += 10 
        : i === 'a' ? copyN -= 10 : copyN
    }
    return copyN;
}

๐Ÿ”์ธ์ƒ๊นŠ์—ˆ๋˜ ์ฝ”๋“œ

const operations = {
  w: (n) => n + 1,
  s: (n) => n - 1,
  d: (n) => n + 10,
  a: (n) => n - 10,
};

function solution(n, control) {
  return [...control].reduce((prev, op) => operations[op](prev), n);
}
  • control ๋ฐฐ์—ด์— reduce ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ

  • ์ˆ˜๋„ ์ฝ”๋“œ: operations ๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์„ ์–ธํ•ด์„œ reduce ์˜ ํ•จ์ˆ˜ ์ธ์ž ์—ฐ์‚ฐ์— op ๋ณ€์ˆ˜๋ฅผ key๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ ์—ฐ์‚ฐ

  • ์ƒ๊ฐ์ง€๋„ ๋ชป ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ ์‹ ์„ ํ–ˆ๋‹ค! ํ•จ์ˆ˜๋ฅผ ๋‹ด์€ ๊ฐ์ฒด์™€ reduce ํ•จ์ˆ˜๋ฅผ ์ด๋ ‡๊ฒŒ๋„ ์—ฎ์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ตฌ๋‚˜

Q3. ์กฐ๊ฑด์— ๋งž๊ฒŒ ์ˆ˜์—ด ๋ณ€ํ™˜ํ•˜๊ธฐ 3

์ •์ˆ˜ ๋ฐฐ์—ด arr์™€ ์ž์—ฐ์ˆ˜ k๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

๋งŒ์•ฝ k๊ฐ€ ํ™€์ˆ˜๋ผ๋ฉด arr์˜ ๋ชจ๋“  ์›์†Œ์— k๋ฅผ ๊ณฑํ•˜๊ณ , k๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด arr์˜ ๋ชจ๋“  ์›์†Œ์— k๋ฅผ ๋”ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ณ€ํ™˜์„ ๋งˆ์นœ ํ›„์˜ arr๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

๐Ÿฃ๋‚ด ์ฝ”๋“œ

function solution(arr, k) {
    let result = [...arr];
    if(k % 2 === 0){
        return result.map((num) => num + k )
    }
    else{
        return result.map((num) => num * k )
    }
}

๐Ÿ”์ธ์ƒ๊นŠ์—ˆ๋˜ ์ฝ”๋“œ

const solution = (arr, k) => arr.map(v => k % 2 ? v * k : v + k)
  • ๋‚ด ์ฝ”๋“œ๋ž‘ ๋กœ์ง์€ ๊ฐ™์€๋ฐ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ›จ์”ฌ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์…”์„œ ๊ธฐ์–ต์— ๋‚จ๋Š”๋‹ค.

  • if else ๋Œ€์‹  ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ์„ ์ต์ˆ™ํ•˜๊ฒŒ ํ•˜์ž.

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

  • ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ€๋•Œ, Number()๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์•ž์— ๋ถ€ํ˜ธ๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด ์ˆซ์ž๋กœ ์ธ์‹ํ•œ๋‹ค!
    ex. +str = Number(str) / n+"" ( โžก ๋ฌธ์ž๋ฅผ ์ˆซ์ž๋กœ)

  • replaceAll์˜ ์กด์žฌ๋ฅผ ์žŠ์ง€ ๋ง์ž.

    • replace(/V/g, 'L') = replaceAll('V', 'L')
  • ์ œ๊ณฑ๊ทผ ๋ฐ˜ํ™˜ํ•˜๋Š” Math ํ•จ์ˆ˜

    • Math.pow(base, exponent) = base^exponent

์ฐธ๊ณ  ์‚ฌ์ดํŠธ

profile
๋ชฉํ‘œ๋Š” "ํ•จ๊ป˜ ์ผํ•˜๊ณ  ์‹ถ์€, ํ•จ๊ป˜ ์ผํ•ด์„œ ์ข‹์€" Front-end ๊ฐœ๋ฐœ์ž

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