연필 개수 세기

2022. 2. 4. 23:18Web/Javascript 알고리즘

내 사고과정 

그림이 더러워서 죄송합니다.. 

일단 입력값에서 12의 배수는 그대로 학생수/12해서 다스 값을 리턴해주면 된다고 생각했고, 

12의 배수가 아니면 학생수/12 한 값에서 +1 해주면 해당 다스 값이 나온다고 생각을 했었다.

 

내가 나름대로 짜본 코드는 아래와 같다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
     
    <script>
        function solution(student,doz){
            var student=prompt('학생 수를 입력하세요')
            var doz; 

           
            if(student%12==0){
                doz=student%12; 
                return doz; 
            } else { 
                return doz+1;
            }
        }

    </script>

</body>
</html>

그런데 콘솔에 값을 입력하면 내가 입력한 값이 그대로 리턴되는 현상이 나타난다. 

 

시도해본 방법 

1) function solution(student) 

function 바깥에 console.log(99); 테스트 케이스 작성 

했는데도 내가 입력한 student의 값이 그대로 리턴된다.. 

> 이 부분은 질문을 드린 상태이다. 

 

수정 코드 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function solution(n){
            let answer=Math.ceil(n/12); // 소수점 반올림 반대는 round(값) sqrt(값)은 제곱근 구하기

            return answer; 
        }
        console.log(solution(25));
    </script>
</body>
</html>

Math.ceil(값)을 이용할지는 생각도 못했다. 소수점 자리를 반올림해서 값을 리턴해준다. 

Math.round(값)은 반올림한 수와 더 가까운 정수값 반환(반올림을 하지 않는다), Math.sqrt(값)은 제곱근을 구해준다. 

 

 

'Web > Javascript 알고리즘' 카테고리의 다른 글

1부터 N까지의 합  (0) 2022.02.07
삼각형 판별하기  (0) 2022.02.04