๐ŸŒŒ Day 8 Algorithm Review

JBยท2022๋…„ 3์›” 23์ผ
0

Algorithms

๋ชฉ๋ก ๋ณด๊ธฐ
9/12

๐ŸŒš Replit

โšก๏ธ reduce()

// Accumulation of array
let arr =  [14, 36, 43, 64, 88, 97];

function sum(arr){
  const sum = arr.reduce((acc, cur) => {
	  return acc + cur
  },0)
  return sum
}
console.log(sum(arr)) // 342

โšก๏ธ Array.from()

// ๋ฐฐ์—ด์˜ ์ง์ˆ˜๋ฒˆ์งธ ์ธ๋ฑ์Šค๋Š” 2๋กœ ํ™€์ˆ˜๋ฒˆ์งธ๋Š” 3
function array(n){
  let arr = Array.from({length: n}, () => 2);
  arr.forEach((num, i)=>{
		if (i%2 !== 0){
      console.log(i)
      arr[i] = 3
    }
  })
  
  return arr;
}

console.log(array(10)); //[ 2, 3, 2, 3, 2, 3, 2, 3, 2, 3 ]
// =============== ๋ฐฐ์—ด ์žฌํ• ๋‹น ===============
console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]

console.log(Array.from([1, 2, 3], el => el + el));
// expected output: Array [2, 4, 6]
// =============== ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” ===============
const arr = Array.from({length: 5}, () => 0);

console.log(arr); // => Array(5) [0, 0, 0, 0, 0]
console.log(arr[0]); // => 0
console.log(arr.length); // => 5

๐ŸŒ Class

๐Ÿƒ reduce

// ================== ์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐ ==================
function solution(n){
    const answer = n.toString().split("").reduce((acc, cur) => {    // toString() mdn ์ฐพ์•„๋ณด๊ธฐ
          return acc + Number(cur)
    },0)    //์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 0์„ ์„ค์ •ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด acc๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ฐ’์ด ๋ฌธ์ž์—ด์ด ๋˜๋ฒ„๋ฆผ ๊ทธ๋ž˜์„œ 0์ด๋ผ๊ณ  ํƒ€์ž…์ถ”๋ก ์„ ์‹œ์ผœ์•ผํ•จ
    return answer
  }
  
  solution(123)
  solution(987)

๐Ÿƒ map()

// ============ x๋งŒํผ ๊ฐ„๊ฒฉ์ด ์žˆ๋Š” n๊ฐœ์˜ ์ˆซ์ž ============
function solution (x,n){
    const answer = new Array(n)
    .fill(1)
    .map((el, i) => {
      return (el + i) * x
    })
    return answer
  }
  
  solution(2,5)	// [ 2, 4, 6, 8, 10 ]

ASCII Code

"b" > "a"    // true
// 98 > 97
"A" > "a"    // false
// 65 > 97

์†Œ๋ฌธ์ž 97 - 122
๋Œ€๋ฌธ์ž 65 - 90

sort()

arr = ["a","z","b","c"]

arr.sort((a,b)=> {
  console.log(a,b,a>b)
  return a>b ? 1 : -1	// ์˜ค๋ฆ„์ฐจ์ˆœ
  return a > b ? -1 : 1	// ๋‚ด๋ฆผ์ฐจ์ˆœ
})

๐Ÿƒ sort()

// ============ ๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ ============
function solution(s){
    // const answer = s.split("") === Array.from(s)
    // ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ 
    const answer = Array.from(s)
    answer.sort((a,b) => {
      return a > b ? -1 : 1	//๋‚ด๋ฆผ์ฐจ์ˆœ
  })
    // ๋‹ค์‹œ ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ
    return answer.join("")
  }
  solution("Zbcdefg")   // 'gfedcbZ'

// ------ refactoring ------
function solution(s){
	return Array.from(s) // ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์คŒ
  						.sort((a,b) => {
    return a > b ? -1 : 1   // ๋ฌธ์ž์—ด ์ˆซ์ž์—ด ๋ชจ๋‘ ์ด ๋ฐฉ๋ฒ• ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ
  }).join("")
}
solution("Zbcdefg")	// 'gfedcbZ'
profile
๋‘๋น„๋‘๋ฐฅ๋ฐฅ

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