Skip to content

Instantly share code, notes, and snippets.

View krowter's full-sized avatar
coffeinated

Krishna krowter

coffeinated
View GitHub Profile
/**
* range of available symbols for maximum radix (i.e. 61)
* @type {string}
*/
const range = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
/**
* converts JavaScript number from other bases to decimal
*
* @param {number} value number to be converted
@krowter
krowter / Timer.js
Created April 15, 2020 07:56
Timer
import React, { useState } from "react";
function Timer(props) {
const { countdownState } = props;
let [minutes, setMinutes] = useState(0);
let [seconds, setSeconds] = useState(10);
switch (countdownState) {
case 0:
@krowter
krowter / overlappingClockHand.js
Last active April 3, 2020 18:19
Finding instances where an analog clock's minutehand overlaps the hourhand
//Note: kode ini hanya untuk ilustrasi metode brute-force
function getAngle({ hour, minute, second, miliSecond }) {
//Semua perhitungan di bawah dikalikan 10000 untuk menyimpan akurasi
//dari operasi bilangan. Nanti akan dibagi 10000 lagi.
//Cari proporsi sudut menit, detik, dan milidetik dalam satu tick jarum menit
const minuteHand =
minute * 60000 + (second * 10000) / 10 + (miliSecond * 10000) / 10000;
if(b===9) {
return -1
} else {
return 0
}
//array input
let input = [9, -1, 8, 3, -2, 9, 4, -3, 9]
//bilangan yang ingin kita pindahkan ke belakang
const numberToMove = 9
input.sort((a,b) => {
if(b===9) {
return -1
} else {
return 0
//array input
let input = [9, -1, 8, 3, -2, 9, 4, -3, 9]
//bilangan yang ingin kita pindahkan ke belakang
const numberToMove = 9
//array nines berisi bilangan dalam input yang sama dengan 9
const nines = input.filter((number) => number === numberToMove)
//array nines berisi bilangan dalam input yang tidak sama dengan 9
const notNines = input.filter((number) => number !== numberToMove)
@krowter
krowter / impactbyte-CC-12-1-1.js
Created March 22, 2020 02:33
Arrow function vs Regular function
//penulisan dengan arrow function
(number, index) => {
if(number === numberToMove) {
input.splice(index, 1)
input.push(number)
}
}
//fungsi di atas ekuivalen dengan fungsi di bawah
@krowter
krowter / impactbyte-CC-12-1.js
Last active March 22, 2020 02:24
Solution 1 for Impact Byte Coding Challenge #12
//array input
let input = [9, -1, 8, 3, -2, 9, 4, -3, 9]
//bilangan yang ingin kita pindahkan ke belakang
const numberToMove = 9
//gunakan loop forEach untuk mengecek tiap element
input.forEach((number, index) => {
//kalau element sama dengan 9
if(number === numberToMove) {
//hapus dia dari array
...
do {
var hasil = [];
var mulai = max;
//mulai isi array dengan bilangan pertama
do {
//method unsift mengisi element dari bagian depan array
hasil.unshift(mulai);
function jumlah(array) {
const nilaiAwal = 0
//gunakan fungsi reduce untuk mengakumulasi
//hasil penjumlahan dari semua element
return array.reduce(function(jumlah, nilai) {
return jumlah + nilai
}, nilaiAwal)
}