// 1.올림
const ceil_1 = Math.ceil(1); // 1
const ceil_2 = Math.ceil(1.3); // 2
const ceil_3 = Math.ceil(1.7); // 2
// 2. null 또는 0인 경우
const ceil_4 = Math.ceil(null); // 0
const ceil_5 = Math.ceil(0); // 0
// 3. 음수인 경우
const ceil_6 = Math.ceil(-1); // -1
const ceil_7 = Math.ceil(-1.2); // -1
const ceil_8 = Math.ceil(-1.9); // -1
// 1.내림
const floor_1 = Math.floor(1); // 1
const floor_2 = Math.floor(1.3); // 1
const floor_3 = Math.floor(2.2); // 2
const floor_4 = Math.floor(2.9); // 2
// 2. null 또는 0인 경우
const floor_5 = Math.floor(null); // 0
const floor_6 = Math.floor(0); // 0
// 3. 음수인 경우
const floor_7 = Math.floor(-1); // -1
const floor_8 = Math.floor(-1.2); // -2
const floor_9 = Math.floor(-1.9); // -2
const round_1 = Math.round(1); // 1
const round_2 = Math.round(1.3); // 1
const round_3 = Math.round(1.7); // 2
// 2. null 또는 0인 경우
const round_4 = Math.round(null); // 0
const round_5 = Math.round(0); // 0
// 3. 음수인 경우
const round_6 = Math.round(-1); // -1
const round_7 = Math.round(-1.2); // -1
const round_8 = Math.round(-1.9); // -2
NaN
console.log(parseInt("10")); // 10
console.log(parseInt("-10")); // -10
console.log(parseInt("10.9")); // 10
console.log(parseInt(10)); // 10
console.log(parseInt("10nnn13")); // 10
console.log(parseInt("10n")); // 10
console.log(parseInt("k10")); // NaN
console.log(parseInt("10", 2)); // 2 (2진법)
console.log(parseInt("0xF")); // 15 (16진법)
const a = 5; // 0000000000000101
console.log(~a); // 1111111111111010
// expected output: -6
const b = -3; // 1111111111111101
console.log(~b); // 0000000000000010
// expected output: 2
~~
> Math.floor
> parseInt
)console.log(~~(-4.7)) // -4
console.log(~~(3.7)) // 3
유클리드 호제법: 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘
방법1: 재귀 이용⭕
let getGCD = (num1, num2) => (num2 > 0 ? getGCD(num2, num1 % num2) : num1);
방법2: 재귀 이용❌
let getGCD2 = (num1, num2) => {
while(num2 > 0){
let r = num1 % num2;
num1 = num2;
num2 = r;
}
return num1;
}
let getLCM = (num1, num2) =>{
let lcm = 1;
while(true){
if((lcm % num1 == 0) && (lcm % num2 == 0)) break;
lcm++;
}
return lcm
}
(추후 자세히 정리하여 올릴 예정)
방법1. 내장함수 이용 - split()
, reverse()
, join()
function reverseString(str) {
var splitString = str.split("");
var reverseArray = splitString.reverse();
var joinArray = reverseArray.join("");
return joinArray;
}
reverseString("hello"); // "olleh"
방법2. for문 이용
function reverseString(str) {
var newString = "";
for (var i = str.length - 1; i >= 0; i--) {
newString += str[i];
}
return newString;
}
reverseString('hello');// "olleh"
def solution(num1, num2):
answer = -1
answer = num1 + num2
return answer
function solution(num1, num2) {
var answer = 0;
answer = num1 - num2
return answer;
}
function solution(num1, num2) {
var answer = 0;
answer = num1 * num2
return answer;
}
function solution(num1, num2) {
var answer = 0;
answer = ~~(num1/num2)
return answer;
}
function solution(num1, num2) {
var answer = Math.floor(num1 / num2 * 1000)
return answer;
}
function solution(num1, num2) {
if (num1 == num2){
return 1
} else { return -1 }
}
function cal_gcd(a, b) {
return a % b === 0 ? b : cal_gcd(b, a % b)
}
function solution(denum1, num1, denum2, num2) {
let denum = denum1 * num2 + denum2 * num1;
let num = num1 * num2;
let gcd = cal_gcd(denum, num);
return [denum / gcd, num / gcd]
}
function solution(numbers) {
var answer = [];
for (let num of numbers){
answer.push(num*2)
}
return answer;
}
function solution(num1, num2) {
var answer = num1 % num2;
return answer;
}
function solution(array) {
var answer = 0;
array = array.sort((a,b) => a-b)
answer = parseInt(array.length / 2)
return array[answer]
}
function solution(array) {
let counting = new Map();
let countArray = new Array;
let maxKey;
let maxValue = -1;
let hasMultipleMaxValues = false;
for (let i of array){
if (!counting.has(i)){
counting.set(i,1);
}else if (counting.has(i)){
counting.set(i, counting.get(i)+1);
}
}
for (let [key, value] of counting) {
if (value > maxValue) {
maxValue = value;
maxKey = key;
hasMultipleMaxValues = false;
}else if (value === maxValue) {
hasMultipleMaxValues = true;
}
}
return (hasMultipleMaxValues) ? -1: maxKey;
}
n
이하의 홀수가 오름차순으로 담긴 배열 출력function solution(n) {
var answer = [];
for (i=0; i<=n; i++){
if (i%2 != 0){
answer.push(i)
}
}
return answer;
}
n
명이 나눠먹을때, 모든 사람이 한 조각 이상 먹기 위해 필요한 피자의 수function solution(n) {
return Math.ceil(n/7)
}
function solution(n) {
let pizza = 6;
while (pizza % n !== 0) {
pizza += 6
} return pizza / 6
}
slice
n
function solution(slice, n) {
var answer = 0;
return answer = Math.ceil(n/slice);
}
function solution(numbers) {
var num = 0;
for (i = 0; i < numbers.length; i++){
num += numbers[i]
}
return num/numbers.length;
}
function solution(price) {
var answer = 0;
if (price >= 500000){
return Math.floor(price*0.8)
}else if (500000 > price && price >= 300000){
return Math.floor(price*0.9)
}else if (300000 > price && price >= 100000){
return Math.floor(price*0.95)
}else{
return price
}
}
money
로 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈 출력function solution(money) {
var answer = [];
answer.push(parseInt(money/5500))
money = money - 5500 *(parseInt(money/5500))
answer.push(money)
return answer;
}
function solution(age) {
var answer = 0;
answer = 2023 - age;
return answer;
}
function solution(num_list) {
var answer = [...num_list].reverse();
return answer;
}