[ TIL 40 ] Code-kata day-7

_dodo_heeยท2021๋…„ 4์›” 23์ผ
0

ALGORITHM

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

Code Kata ๋ฌธ์ œ ๐Ÿ“œ

s๋Š” ์—ฌ๋Ÿฌ ๊ด„ํ˜ธ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ String ์ธ์ž์ž…๋‹ˆ๋‹ค.
s๊ฐ€ ์œ ํšจํ•œ ํ‘œํ˜„์ธ์ง€ ์•„๋‹Œ์ง€ true/false๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ์„ธ์š”.

๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•ด๋ณด์ž ๐Ÿง

๋ฐฐ์—ด์ค‘์— ๊ด„ํ˜ธ์ง์„ 2๊ฐœ์”ฉ ๊ฐ€์ ธ์™€์„œ
๊ด„ํ˜ธ์ง์ด ๋งž์œผ๋ฉด true ํ•˜๋‚˜๋ผ๋„ ํ‹€๋ฆฐ๊ฒŒ ์žˆ์œผ๋ฉด false๋ฅผ ์ถœ๋ ฅ์‹œ์ผœ๋ผ

Code Kata ์ฒซ๋ฒˆ์งธ ์‹œ๋„ ๐Ÿ’ก

function isValid(s) {
  let array = s.split('');
  console.log(array);
  
  if(array[0]===array[1]){
    return true;
  } else {
    return false;
  }
}

console.log(isValid("{}"))

์ฒซ๋ฒˆ์งธ ์‹œ๋„ review โœ๏ธ

์ผ๋‹จ ๋กœ์ง์„ ์งœ๊ธฐ ์–ด๋ ค์šธ๋•Œ ์š”์ฆ˜ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ
์ผ๋‹จ ๊ฐ„๋‹จํ•œ ์‹์ด๋ผ๋„ ๋Œ€์ถฉ ๊ฒฐ๊ณผ๊ฐ’์ด๋ผ๋„ ๋‚˜์˜ค๊ฒŒ ๋กœ์ง์„ ๊ตฌํ˜„ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์›ํ•˜๋Š” ๋‹ต์ด ๋‚˜์˜ค๋ฉด ๊ตฌ๊ธ€๋ง ๋ฉ”์†Œ๋“œ๋ฅผ ์ฐพ์•„์„œ
์กฐ๊ธˆ ๋” ์ฝ”๋“œ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.

์ธ์ž๋กœ ๋ฐ›์€ ๊ฐ’์„ split์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž๋ฅผ ์ชผ๊ฐœ์„œ ๋ฐฐ์—ด์— ๋‹ด์•„์ค€๋‹ค.
๋งŒ์•ฝ์— ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค๊ฐ’๊ณผ ๋‘๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’์˜ ๋ฌธ์ž๊ฐ€ ๊ฐ™์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ 
์•„๋‹ˆ๋ฉด false๋ฅผ ์ถœ๋ ฅํ•ด๋ผ.


Code kata ๋‘๋ฒˆ์งธ ์‹œ๋„ ๐Ÿ’ก

function isValid(s) {
  let arr = s.slice();
  console.log(arr);
  for (let i = 0; i < s.length/2; i++){
    for (let j = 0; j < s.length-1; j++){
      let match = arr[j]+arr[j+1];
      if ( (match === "()") || (match === "{}") || (match === "[]")){
        arr= arr.replace(arr[j], "").replace(arr[j+1],""); //์—†์• ์ฃผ๋Š”๊ฐœ๋…
      }
    }
  }
  if (arr === "") {
    return true
  } else {
    return false
  }  
}

๋‘๋ฒˆ์งธ ์‹œ๋„ review โœ๏ธ

์ผ๋‹จ ๋กœ์ง์„ ์งœ๊ธฐ ์–ด๋ ค์šธ๋•Œ ์š”์ฆ˜ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ
์ผ๋‹จ ๊ฐ„๋‹จํ•œ ์‹์ด๋ผ๋„ ๋Œ€์ถฉ ๊ฒฐ๊ณผ๊ฐ’์ด๋ผ๋„ ๋‚˜์˜ค๊ฒŒ ๋กœ์ง์„ ๊ตฌํ˜„ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์›ํ•˜๋Š” ๋‹ต์ด ๋‚˜์˜ค๋ฉด ๊ตฌ๊ธ€๋ง ๋ฉ”์†Œ๋“œ๋ฅผ ์ฐพ์•„์„œ
์กฐ๊ธˆ ๋” ์ฝ”๋“œ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.

์ธ์ž๋กœ ๋ฐ›์€ ๊ฐ’์„ split์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž๋ฅผ ์ชผ๊ฐœ์„œ ๋ฐฐ์—ด์— ๋‹ด์•„์ค€๋‹ค.
๋งŒ์•ฝ์— ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค๊ฐ’๊ณผ ๋‘๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’์˜ ๋ฌธ์ž๊ฐ€ ๊ฐ™์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ 
์•„๋‹ˆ๋ฉด false๋ฅผ ์ถœ๋ ฅํ•ด๋ผ.


์ƒˆ๋กœ์šด ์•Œ๊ฒŒ ๋œ ๋ฉ”์„œ๋“œ ๐Ÿ“Œ

๋‚ด๊ฐ€ ์ด๋ฒˆ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ์•Œ๊ฒŒ๋œ ๋ฉ”์„œ๋“œ์˜ ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๊ฒ ๋‹ค. (์•„์ฃผ ๊ฐ„๋‹จํžˆ)

reduce

๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ reduceํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Number

์ˆซ์ž ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.

profile
๋ฌด๋Ÿญ๋ฌด๋Ÿญ ์ž๋ผ๋‚˜๋Š” ๋„๋„ ๊ฐœ๋ฐœ์„ฑ์žฅ์ผ๊ธฐ

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