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

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

๐Ÿ€TIL๐Ÿ€Coding Test

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

Q1. ๋ฐฐ์—ด์˜ ์›์†Œ๋งŒํผ ์ถ”๊ฐ€ํ•˜๊ธฐ

์•„๋ฌด ์›์†Œ๋„ ๋“ค์–ด์žˆ์ง€ ์•Š์€ ๋นˆ ๋ฐฐ์—ด X๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์–‘์˜ ์ •์ˆ˜ ๋ฐฐ์—ด arr๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, arr์˜ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์›์†Œ๋ฅผ ๋ณด๋ฉด์„œ ์›์†Œ๊ฐ€ a๋ผ๋ฉด X์˜ ๋งจ ๋’ค์— a๋ฅผ a๋ฒˆ ์ถ”๊ฐ€ํ•˜๋Š” ์ผ์„ ๋ฐ˜๋ณตํ•œ ๋’ค์˜ ๋ฐฐ์—ด X๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

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

function solution(arr) {
    let answer = [];
    
    for(let i = 0; i < arr.length; i++){
        for(let j=0; j < arr[i]; j++){
            answer.push(arr[i]) 
        }
    }
    
    return answer;
}

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

function solution(arr) {
    return arr.reduce((list, num) => [...list, ...new Array(num).fill(num)], []);
}
  • reduce ํ•จ์ˆ˜์™€ Array() ํ•จ์ˆ˜, fill ํ•จ์ˆ˜๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์ž˜ ์„ž์–ด ์‚ฌ์šฉํ–ˆ๋‹ค.

  • reduce์˜ acc ์ธ์ž์™€ cur ์ธ์ž๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐฐ์—ด์„ ํ•ฉ์ณ์คฌ๋‹ค.

  • ์ฆ‰ ์œ„ ์ฝ”๋“œ์—์„œ list๊ฐ€ acc์— ํ•ด๋‹นํ•˜๊ณ  num์ด cur์— ํ•ด๋‹น!

  • ๋งจ ๋’ค []๋Š” ์ดˆ๊ธฐ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค.

Q2. ์„ธ๊ท  ์ฆ์‹

์–ด๋–ค ์„ธ๊ท ์€ 1์‹œ๊ฐ„์— ๋‘๋ฐฐ๋งŒํผ ์ฆ์‹ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ ์„ธ๊ท ์˜ ๋งˆ๋ฆฌ์ˆ˜ n๊ณผ ๊ฒฝ๊ณผํ•œ ์‹œ๊ฐ„ t๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ t์‹œ๊ฐ„ ํ›„ ์„ธ๊ท ์˜ ์ˆ˜๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

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

function solution(n, t) {
    let answer = n;
    
    for(let i = 0; i < t; i++){
        answer *= 2
    }
    
    return answer;
}

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

function solution(n, t) {
  return n << t;
}
  • ์‹œํ”„ํŠธ ๋น„ํŠธ ์—ฐ์‚ฐ์ž! ์™„์ „ ๊ฐ„๊ฒฐํ•˜๊ณ  ๊น”๋”ํ•˜๋‹ค.

  • ์—ฌ๊ธฐ์„œ ์“ฐ์ธ ๊ฑด ์™ผ์ชฝ ์‹œํ”„ํŠธ ๋น„ํŠธ ์—ฐ์‚ฐ์ž

    ์ด ์—ฐ์‚ฐ์ž๋Š” ์ฒซ ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ช…์‹œํ•œ ๋น„ํŠธ ์ˆ˜๋งŒํผ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์™ผ์ชฝ์œผ๋กœ ์ด๋™๋œ ์ดˆ๊ณผ ๋น„ํŠธ๋Š” ํ๊ธฐ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ์€ ์›€์ง์ธ ๋น„ํŠธ ์ˆ˜ ๋งŒํผ 0 ๋น„ํŠธ๋กœ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค.

  • ์ž„์˜์˜ ์ˆซ์ž x๋ฅผ ์™ผ์ชฝ์œผ๋กœ y๋น„ํŠธ ๋‹จ์œ„๋กœ ์ด๋™ํ•˜๋ฉด x * 2 ** y์ด๋‹ค.
    ์˜ˆ๋ฅผ ๋“ค์–ด, 9 << 2์€ 36์ด๋‹ค.

Q3. 5๋ช…์”ฉ

์ตœ๋Œ€ 5๋ช…์”ฉ ํƒ‘์Šน๊ฐ€๋Šฅํ•œ ๋†€์ด๊ธฐ๊ตฌ๋ฅผ ํƒ€๊ธฐ ์œ„ํ•ด ์ค„์„ ์„œ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ names๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์•ž์—์„œ ๋ถ€ํ„ฐ 5๋ช…์”ฉ ๋ฌถ์€ ๊ทธ๋ฃน์˜ ๊ฐ€์žฅ ์•ž์— ์„œ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์˜ ์ด๋ฆ„์„ ๋‹ด์€ ๋ฆฌ์ŠคํŠธ๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ๋งˆ์ง€๋ง‰ ๊ทธ๋ฃน์ด 5๋ช…์ด ๋˜์ง€ ์•Š๋”๋ผ๋„ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

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

function solution(names) {
    
    let leaders = [];
    
    for(let i = 0; i < names.length; i+=5){
        leaders.push(names[i])
    }
    
    return leaders;
                    
}

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

const solution = names => names.filter((_, i) => !(i % 5))
  • filter๋ฅผ ์ž˜ ์‚ฌ์šฉํ•จ.

  • value๋Š” ์˜๋ฏธ๊ฐ€ ์˜…์–ด์„œ _๋กœ ํ‘œ์‹œํ–ˆ๊ณ , ์ค‘์š”ํ•œ ๊ฑด index! ์ธ๋ฑ์Šค๋ฅผ 5๋กœ ๋‚˜๋ˆด์„ ๋•Œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ธ ์š”์†Œ๋งŒ ๋ฌถ์€ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜!

    • 0(0, 1, 2, 3, 4 ๊ทธ๋ฃน์˜ ๊ฐ€์žฅ ์•ž ์‚ฌ๋žŒ)
      5(5, 6, 7, 8, 9 ๊ทธ๋ฃน์˜ ๊ฐ€์žฅ ์•ž ์‚ฌ๋žŒ)
      10(10, 11, 12, 13, 14 ๊ทธ๋ฃน์˜ ๊ฐ€์žฅ ์•ž ์‚ฌ๋žŒ)...

Q4. 0 ๋–ผ๊ธฐ

์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด n_str์ด ์ฃผ์–ด์งˆ ๋•Œ, n_str์˜ ๊ฐ€์žฅ ์™ผ์ชฝ์— ์ฒ˜์Œ์œผ๋กœ ๋“ฑ์žฅํ•˜๋Š” 0๋“ค์„ ๋—€ ๋ฌธ์ž์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

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

function solution(n_str) {
    let i = 0;
    
    while(n_str[i] === "0"){
        i++
    }
    
    return n_str.slice(i);
}

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

const solution = (str) => String(Number(str))
  • ์ธ์ˆ˜๋กœ ๋ฐ›๋Š” ๊ฑด ๋ฌธ์ž์—ด! ์ฆ‰ Number๋กœ ์ˆซ์žํ˜•์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ์ž๋™์œผ๋กœ ์•ž ๋ถ€๋ถ„ 0์€ ๋–ผ์ง„๋‹ค! ๊ทธ๊ฑธ ๋‹ค์‹œ String์œผ๋กœ ๋ฌธ์ž์—ด๋กœ๋ณ€ํ™˜ํ•ด์„œ return ํ•ด์ฃผ๋ฉด ๋~

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

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Left_shift

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

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