연필 개수 세기
2022. 2. 4. 23:18ㆍWeb/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 |