코딩테스트 돌아보기

신동윤·2023년 1월 24일
0

몫 구하기

function solution(num1, num2) {
    let divind = num1 / num2;
    
    return Math.floor(divind);
}

// Math.floor()을 사용(내림)

각도기

function solution(angle) {
    let answer = 0;
    
    if (angle > 0 && angle < 90) {
        answer = 1
    } else if (angle == 90) {
        answer = 2
    } else if (angle > 90 && angle < 180) {
        answer = 3
    } else {
        answer = 4
    }
    return answer;
}
// answer에 초기값을 설정해주고 if구문이 ture라면 {}실행, 아니라면 밑으로 쭉쭉 / &&(and) 연산자 활용

두 수의 나눗셈

function solution(num1, num2) {
    console.log(typeof num1, typeof num2)
    
    var answer = parseInt(num1/num2 * 1000);
    return answer;
}
// parseInt() 사용 (함수는 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환합니다.)
// Math.floor()로도 충분히 가능했었다.

짝수의 합

function solution(n) {
    
    let answer = 0;
    
    for (let i = 1; i < n+1; i++) {
        if (i % 2 === 0) {
            answer += i;
        }
    }
    return answer;
}
// 초기값을 0으로 설정해주고, i에 대하여 반복문을 돌린다. 만약 i를 2로 나눴을떄 나머지가 없다면(짝수) 0에다가 if가 true일때의 값을 더해준다.
// A += B는  B를 A에 더해준다는 의미, A의 값 변경

배열의 평균값

function solution(numbers) {
    //console.log(numbers)
    let answer = numbers[0];
    
    for (i=1; i < numbers.length; i++) {
        answer += numbers[i];
    } return answer / numbers.length;
}
// 배열의 첫번쨰 인덱스를 초기값으로 셋팅하고, 각각의 배열의 요소들을 더해준다.

피자 나눠먹기(1)

function solution(n) {
    console.log(typeof n)
    
    if (n < 7) {
        return 1;
    }
    else if (n % 7 === 0) {
        return n/7;
    }
    return Math.floor(n/7) + 1 ;
}
// 7판, 14판과 같은 건 앞에서 걸러주고 마지막에 Math.floor()을 사용하여 몫만 남겨 +1판 해주었다. 
function solution(n) {
    console.log(typeof n)
    
    if (n < 7) {
        return 1;
    }
    return Math.ceil(n/7);
}
// Math.ceil() 함수는 올림함수이다. 7,14에서도 정수값 반환하며 그것보다 클경우에 올림처리해준다.

짝수는 싫어요 ?

function solution(n) {
    let result = [];

        // result.push(1,2)
        // console.log(result);
    
    for (i=1; i <= n; i++) {
        if (i % 2 !== 0) {
            result.push(i);
        }
    } return result;
}
// result를 []빈 배열로 만들어주고, i가 짝수가 아니라면 result배열에 뒤에서부터 붙혀준다(push). 
   result.push()는 앞에 배열인 result값을 바로 바꿔준다.

중앙값 구하기 ?

function solution(array) {
    function compare(a,b) {
        return a - b; 
    }

    let steps = array.sort(compare);
    console.log(steps);
    
    // let steps = array.sort((a, b) => a - b) 짮게 쓰기
    
    let num = Math.floor(steps.length/2)
    return (array[num]);
}
// sort() 함수를 이용해 배열을 오름차순으로 변경한다.
   array는 홀수 길이를 가지고 있으므로 중앙값을 다음과 같이 계산.

문자열 계산하기 ?

function solution(my_string) {
    let string = my_string.split(' ');    
    let answer = +string[0];
    
    for (i = 0; i < string.length; i++) {
        
        if (string[i] === "+") {
            answer += +(string[i+1]);
        }
        else if (string[i] === "-") {
            answer -= +(string[i+1]);
        }
    }
    return answer;
}
// split()를 사용해 공백으로 문자를 나눈다. answer는 string의 초기값을 숫자형으로 변환시킨다. +는 문자열이 있으면 문자로 붙기때문
  +,-기호가 있을 때 +=,-=로 answer의 값을 변경한다.
  처음엔 연산자가 하나만 있을것이라 생각해서 잘못 풀었었다.

분수의 덧셈

function solution(numer1, denom1, numer2, denom2) {
    let son = numer1 * denom2 + numer2 * denom1;
    let mom = denom1 * denom2;

    let num = 0;
    
    for (let i=0 ; i <= Math.min(son,mom); i++) {
     
        if (son % i === 0 && mom % i === 0) {
            num = i;     
        }
    } return [son/num,mom/num];
}

// 분자와 분모 변수를 만들고, num의 초기값을 지정해준다. i는 분자,분모중 가장 작은것까지 돌리고
   i가 분자,분모를 나눴을때 나머지가 0인값중 가장 큰 값을 반환(num)한다.
   return 위치 잘확인하자

짝수 홀수 개수

function solution(num_list) {
    let answer = [];       // 원래하려던 것과 달라져 쓰지않음
    let a = 0;
    let b = 0;
    console.log(num_list[3]%2);
    
    for (let i=0; i<num_list.length; i++) {
        if (num_list[i] % 2 == 0) {
            a += 1;          // a = a++ , return a += 1, 는 안됐음, 여기서 오래걸렸네. 
        } else {
            b++;
        }
    } return [a,b];
}
원래는 push를 하려했는데 반복이라 [0,1,0,2,0,3,0,4] 식으로 나왔다. 
! 반복마다 끝에는 return자리에 행동을 하는데 거기에 push를 해서 그런것같다.
a++ 이나 return 쓰는 법을 다시 봐야겠다.

문자열 뒤집기

function solution(my_string) {
    let answer = my_string.split(''); //split로 한글자씩 끊어 배열로 형을 바꿔낸다
    let reanswer = answer.reverse();  //reverse를 통해 배열을 뒤집어 준다
    
    return reanswer.join(''); // 모던 자바스크립트 배열과 매서드를 확인하자. 
}
// 스프레드 문법을 사용해서 풀 수 있다고 한다.

ex)

function solution(my_string) {
    var answer = [...my_string].reverse().join("");
    return answer;
}

0개의 댓글