🌌 Day 9 Algorithm Review

JBΒ·2022λ…„ 3μ›” 24일
0

Algorithms

λͺ©λ‘ 보기
10/12

🌚 Replit

⚑️ reverse()

// ================ How reversing works ================
const exNum = 35
console.log(Number(exNum.toString().split('').reverse().join(''))) //53

⚑️ isPrime()

function isPrime(num) {
  if(num ===1) return false
  for(let i = 2; i <= num/2; i++){
    if (num%i === 0 ) return false	
  }
  return true	//λ‚˜ μžμ‹ μ„ λ‚˜λˆ΄μ„λ•Œ λ‚˜λˆ„μ–΄λ–¨μ–΄μ§„ 적이 있으면 μ†Œμˆ˜κ°€ μ•„λ‹Œκ±°
}

charCodeAt()

const aaa = "a"
aaa.charCodeAt() // 97

πŸš€ 숫자 λ’€μ§‘μ–΄μ„œ λ‚˜μ˜€λŠ” 수둜 μ†Œμˆ˜ νŒλ³„ν•˜κΈ°

// Mento
const arr = [32, 55, 62, 20, 250, 370, 200, 30, 10]

const solution = (arr) => {
  const result = []
  
  	// 숫자 뒀집기
  	arr.forEach((el) => { // 배열을 ν•˜λ‚˜ν•˜λ‚˜ 돌건데 λ°°μ—΄μ˜ 값이 elμ΄λΌλŠ” μ΄λ¦„μœΌλ‘œ λ“€μ–΄μ™€μ„œ λ©”μ†Œλ“œ μ‹€ν–‰
    	const reverseNum = Number(el.toString().split('').reverse().join(''))
    	//console.log(reverseNum) //23 55 26 2 52 73 2 3 1
    
    // μ†Œμˆ˜ νŒλ³„
    if(reverseNum ===1) return false	// μ†Œμˆ˜κ°€ μ•„λ‹ˆλ‹€
    
  	for(let i = 2; i <= reverseNum/2; i++){
    	if (reverseNum%i === 0 ){
      		console.log(reverseNum)	// 55, 26, 52
      		return false
    	}// μ†Œμˆ˜κ°€ μ•„λ‹ˆλ‹€
  	}
    return result.push(reverseNum)
  })
  
  return result
  
}

solution(arr) // [23, 2, 73, 2, 3]

reverseStr ν•¨μˆ˜ λ§Œλ“€κΈ°

function reverseStr(list){
  // μ•„λž˜μ— μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ£Όμ„Έμš”.
  let result = '';
  let alphabet = ''


  list.reverse()
  list.forEach((el,i) => {
    
    // element ν•˜λ‚˜ 속 index κ²€μ—΄
    for(let k = 0; k < list[i].length; k ++) {
      
      // element의 인덱슀 ν•˜λ‚˜ν•˜λ‚˜λ₯Ό ASCII code둜 λ³Ό λ•Œ => λŒ€λ¬ΈμžμΌλ•Œ : 65 - 90
      if (90 >= list[i].charCodeAt(k) && list[i].charCodeAt(k)>=65){
        alphabet = list[i][k].toLowerCase()	// μ†Œλ¬Έμžν™” μ‹œν‚€κΈ°
        result += alphabet	// result에 alphabet λ‹΄κΈ°
      } 
      else { // λ°˜λŒ€ κ²½μš°μ—
        alphabet = list[i][k].toUpperCase()	// λŒ€λ¬Έμžν™” μ‹œν‚€κΈ°
        result += alphabet
      }
    }
    (i === list.length -1)  ? result : result += " "
  })
    return result;
}

reverseStr(['cODECAMP', 'iS', 'tHIS', 'eVERYONE', 'hELLO']) // 'Hello Everyone This Is Codecamp'

🌝 Class

πŸƒ 짝수번째 인덱슀 λŒ€λ¬Έμžν™”

function solution(s){
    let answer = s.split(" ") // 곡백을 κΈ°μ€€μœΌλ‘œ λ‚˜λˆ μ„œ λ°°μ—΄ν˜•νƒœλ‘œ κ°€μ Έμ˜€κΈ° [ 'try', 'hello', 'world' ]
                                  .map(str => {
                    //console.log(str) =>  'try' 'hello' 'world'
                    return str.split("") // [ [ 't', 'r', 'y' ], [ 'h', 'e', 'l', 'l', 'o' ], [ 'w', 'o', 'r', 'l', 'd' ] ]
                                        .map( (letter, i) => {
                      return i % 2 === 0 
                                   ? letter.toUpperCase()
                                   : letter.toLowerCase()
                    }).join("") // 단어끼리 μ‘°μΈμ‹œν‚€κΈ°  => [ 'TrY', 'HeLlO', 'WoRlD' ]
                  }).join(" ") // ν•˜λ‚˜μ˜ λ¬Έμžμ—΄λ‘œ 곡백을 κΈ°μ€€μœΌλ‘œ μ‘°μΈμ‹œν‚€κΈ°  => 'TrY HeLlO WoRlD'
      
      return answer 
  }

  solution("try hello world") // 'TrY HeLlO WoRlD'

πŸƒ λ¬Έμžμ—΄ λ‚΄ p와 y의 갯수 κ΅¬ν•˜κΈ°

function solution(s){
    const check = {}
    
    // 전체 λ¬Έμžμ—΄μ„ μ†Œλ¬Έμžλ‘œ λ³€κ²½
    s = s.toLowerCase().split("").forEach(str => {
      check[str] === undefined
          // 객체에 ν• λ‹Ήλ˜μ–΄μžˆλŠ” ν‚€ 데이터가 μ—†λ‹€λ©΄ λ§Œλ“€μ–΄μ„œ μ΄ˆκΈ°κ°’ 1을 λ„£μ–΄μ£Όκ³ 
          ? check[str] = 1
          // 객체에 ν• λ‹Ήλ˜μ–΄μžˆλŠ” ν‚€ 데이터가 μžˆλ‹€λ©΄ μ§€κΈˆ μžˆλŠ”κ±°μ— ν•˜λ‚˜μ”© λ”ν•΄μ€Œ
          : check[str]++
    })
    console.log(check) // { p: 1, y: 2 }    { p: 2, o: 3, y: 2 }
    return check.p === check.y // p와 yκ°’μ˜ μˆ˜κ°€ μΌμΉ˜ν•˜λŠ”μ§€ boolean type으둜 return
  }
  
  solution("Pyy")			// false
  solution("pPoooyY")		// true

πŸƒ λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€λŠ” 숫자 λ°°μ—΄

function solution(arr, divisor){
  const answer = arr.filter(num => {
    return num%divisor === 0
  })
  return answer.length === 0 // answer에 ν•˜λ‚˜λΌλ„ λ“€μ–΄μ™”μ„κ²½μš°μ™€ μ•„λ‹Œ 경우 
  			? [-1]
  			: answer.sort((a,b) => a-b)
}

solution ([5,9,7,10], 5) // [5, 10]
solution([1,3,7], 5) // [-1]

πŸƒ μžμ—°μˆ˜ λ’€μ§‘μ–΄μ„œ λ°°μ—΄λ‘œ λ§Œλ“€κΈ°

function solution(n){
    return n.toString().split("").reverse().map((el) => Number(el))
  }
  
  solution(98765)		// [ 5, 6, 7, 8, 9 ]
profile
두비두λ°₯λ°₯

0개의 λŒ“κΈ€