Skip to content

Instantly share code, notes, and snippets.

@Aslam97
Created June 24, 2024 06:09
Show Gist options
  • Save Aslam97/eaed5553e01a94c004c36de548acb9c1 to your computer and use it in GitHub Desktop.
Save Aslam97/eaed5553e01a94c004c36de548acb9c1 to your computer and use it in GitHub Desktop.
interview
function creditCardCheck(num) {
  var computed = makeComputed()
  var i = (num + '').length
  var start = false // why false? since double every the second index but start from right
  var sum = 0

  // start from right
  while (i--) {
    n = Number(num[i])
    // console.log(n, n % 2)

    if (start) {
      console.log(n)
      sum += computed[n]
    } else {
      sum += n
    }

    start = !start
  }

  console.log('sum is:', sum)
  return sum % 10 === 0
}

function isPrime(num) {
  if (num < 2) {
    return false
  }

  // Check for divisibility from 2 to the square root of the number
  for (let i = 2; i * i <= num; i++) {
    if (num % i === 0) {
      return false // If the number is divisible, it's not prime
    }
  }

  return true // If no divisors were found, the number is prime
}

function countFPB(a, b) {
  // Gunakan algoritma Euclidean untuk mencari FPB
  while (b !== 0) {
    let temp = b
    b = a % b
    a = temp
  }
  return a
}

function fib(n) {
  var a = 1
  var b = 0
  var temp

  while (n >= 0) {
    temp = a
    a = a + b
    b = temp
    n--
  }

  return b
}

function year(year) {
  return Math.floor((year + 99) / 100)
}

// create function to get avg without ausing any built-in function
function getAvg(arr) {
  var sum = 0
  var count = 0

  for (let i = 0; i < arr.length; i++) {
    sum += arr[i]
    count++
  }

  return sum / count
}

// create function to sort and array and accept second parameter as boolean to sort in descending order or ascending order
function sortArray(arr, desc) {
  var temp = 0

  for (let i = 0; i < arr.length; i++) {
    for (let j = i + 1; j < arr.length; j++) {
      if (desc) {
        if (arr[i] < arr[j]) {
          temp = arr[i]
          arr[i] = arr[j]
          arr[j] = temp
        }
      } else {
        if (arr[i] > arr[j]) {
          temp = arr[i]
          arr[i] = arr[j]
          arr[j] = temp
        }
      }
    }
  }

  return arr
}

function isPalindrome(str) {
  var reverse = ''
  var w = str.length

  while (w--) {
    reverse += str[w]
  }

  return reverse === str
}

function moveArr(arr) {
  var temp = 0

  for (let i = 0; i < arr.length; i++) {
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[i] > arr[j]) {
        temp = arr[i]
        arr[i] = arr[j]
        arr[j] = temp
      }
    }
  }

  return arr
}

function makeComputed() {
  var computed = []

  for (let i = 0; i <= 9; i++) {
    computed.push((res = i * 2) > 9 ? res - 9 : res)
  }

  return computed
}

function solution(col, row) {
  // Total kolom dan baris
  const totalColumns = 18
  const totalRows = 15

  // Kolom yang akan dipertimbangkan (current, left, right)
  let consideredColumns = [col - 1, col, col + 1]

  // Filter kolom yang valid (harus berada dalam rentang 1 hingga 18)
  consideredColumns = consideredColumns.filter(
    (c) => c >= 1 && c <= totalColumns
  )

  // Jumlah orang di baris di belakang baris tempat duduk saat ini
  let peopleCount = 0
  // Orang di baris belakang (row + 1 hingga total_rows)
  peopleCount += consideredColumns.length * (totalRows - row)

  return peopleCount
}

console.log(solution(3, 5))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment