코딩테스트 정리 (2)

Yeonjoo Yoo·2022년 2월 8일
0

Array.prototype.fill()

  • fill(value, start, end)
    • start, end (optional)
  • 네트워크
function solution(n, computers) {
    let answer = 0
    const visited = new Array(n).fill(false)
    const dfs = (idx) => {
        visited[idx] = true 
        for(let j = 0; j < n; j++) {
            if(computers[idx][j] === 1 && !visited[j]) {
                dfs(j)
            }
        }
    }
    
    for(let i=0;i<n;i++) {
        if(!visited[i]) {
            dfs(i)
            answer++
        }
    }
    return answer;
}

Array.prototype.indexOf()

  • indexOf(searchElement, fromIndex)
    • fromIndex (optinal)

Palindrome

  • 거꾸로 읽어도 제대로 읽는 것과 같은 문장이나 낱말, 숫자, 문자열
  • 가장 긴 팰린드롬
function solution(s) {
  var len = s.length
  var answer = -1
  for (var i = 0; i < len; i++) {
    if (answer > -1) break
    for (var t = 0; t <= i; t++) {
      if (s[t] === s[len-i+t-1] && isPalindrome(s.slice(t, len-i+t))) {
        answer = len - i
        break
      }
    }
  }

  return answer;
}

// 팰린드롬 체크 함수
function isPalindrome(s) {
  var chk = true
  for (var i = 1; i < s.length; i++) {
    if (s[i] != s[s.length - 1 - i]) {
      chk = false
      break
    }
  }
  return chk
}
profile
to be frontend engineer

0개의 댓글