본문 바로가기
카테고리 없음

TIL 20230314(온보딩 7일차)

by junhub 2023. 3. 15.

function solution(n, k) {
    let a = n * 12000;
    let b = k * 2000;
    let answer = a + b;
  if (n >= 10) {
    let c = Math.floor(n / 10) 
    return answer - 2000 * c
  }else{
      return answer
  }
}

console.log(solution(64,6))

먼저 변수 answer에 양꼬치와 음료수를 먹은 토탈 값을 할당해놓는다. 

그 후 양꼬치를 10인분 이상 먹으면 10인분 당 음료수 하나를 서비스를 준다고 했으니 n(양꼬치를 시킨 수) >= 10 이라면 

c라는 변수에 n / 10을 해서 Math.floor를 활용해 뒷자리를 버리겠다는 코드를 짰다. 

그리고 return answer(양꼬치 음료수 시킨 토탈값) - 2000(음료수 개당 값) * c(서비스 받은 음료수 개수)

를 해주고 만약 양꼬치를 10인분 이상 시키지 않았다, 즉 n이 10보다 작다면 if 조건문에 충족하지 않으므로 else { return answer } 

가 실행되게 된다. 


function solution(n) {
  var answer = 0;
  answer = Math.ceil(n / 7);
  return answer;
}

console.log(solution(7))
console.log(solution(1))
console.log(solution(15))

Math.ceil 이라는 메소드를 사용하여 올림을 했다.

 

7 / 7 = 1 

1 / 7 = 0.1428 -> 1

15 / 7 = 2.1428 -> 3

 

입출력 예를 잘 보고 힌트를 얻어가면 수월하게 풀 수 있을거 같다.


function solution(slice, n) {
    var answer = Math.ceil(n/slice);
    return answer;
}

console.log(solution(7,10))
console.log(solution(4,12))

마찬가지로 Math.ceil 메소드를 사용하여 올림을 했다. 

 

10 / 7 = 1.428    ->   2

12 / 4 = 3   ->     3


function solution(dot) {
    if(dot[0] > 0 && dot[1] > 0){
        return 1
    }else if(dot[0] < 0 && dot[1] > 0){
        return 2
    }else if(dot[0] < 0 && dot[1] < 0){
        return 3
    }else{
        return 4
    }
}

console.log(solution([2,4]))
console.log(solution([-7,9]))

dot 이라는 매개변수에 배열이 들어오기 때문에 dot의 0번째 인덱스와 1번째 인덱스를 각각 0과 비교해서 음수인지 양수인지를 판별하는조건문을 활용했다. 


function solution(money) {
    let 아메리카노개수 = Math.floor(money / 5500);
    let 잔돈 = money - 5500 * 아메리카노개수
    return [아메리카노개수, 잔돈]
}

console.log(solution(5500))
console.log(solution(15000))

변수 아메리카노개수에 매개변수 money를 5500으로 나눈 값을 Math.floor 메소드를 사용해 내림하여 할당했다. 

내림을 한 이유는 만약 15000원을 가지고 아메리카노를 산다고 하면 money에 15000원이 들어가게 되고 15000 / 5500 = 2.72727...

값이 되기 때문이다. 정수 부분만 구하면 되기때문에 소숫점은 버리기 위해 사용했다. 


function solution(price) {
    if(100000 <= price && price < 300000){
        return Math.floor(price * 0.95)
    }else if(300000 <= price && price < 500000){
        return Math.floor(price * 0.90)
    }else if(500000 <= price){
        return Math.floor(price * 0.80)
    }else if(100000 > price){
        return Math.floor(price)
    }
}

console.log(solution(150000))
console.log(solution(580000))

주의해야 할 점은 조건이 겹치지 않게 범위를 명확히 정해줘야 한다는 점이다.

제한사항에 소수점 이하를 버린 정수를 return 하라고 돼있으므로 Math.floor 메소드를 활용한다. 


function solution(n) { 
    if(Math.sqrt(n) % 1 == 0){
        return 1
    }else{
        return 2
    }
}

console.log(solution(144))
console.log(solution(976))

이해해야 될 부분은 소수를 1로 나누게 되면 나머지가 0 이 아닌 0.xxxxxx.. 와 같이 소수점 부분이 남는다는 것이다.

예를 들어 3.141592 를 1로 나누게 된다면 나머지가 0.141492가 되는 것이다. 

Math.sqrt( ) 메소드는 제곱근을 출력하는 메소드이다. 이 메소드를 활용해서 n의 제곱근을 1로 나누어 나머지가 0일때는 n은 제곱근임을 알 수 있고 , 1로 나누어 떨어지지 않을 때는 n은 제곱근이 아님을 알 수 있다. 

 

 

댓글