[JS] 삼각형 판별, 연필 개수
2021. 6. 29. 18:43ㆍ개발공부/알고리즘
길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있 으면 “YES"를 출력하고, 만들 수 없으면 ”NO"를 출력한다.
삼각형 판별하기
삼각형이 만들어지려면 max값이 나머지 두변의 길이의합보다 작아야한다.(같아도 안됨)
처음엔 바보처럼 풀었다😨
<!-- 길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있 으면 "YES"를 출력하고, 만들 수 없으면 "NO"를 출력한다. -->
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(a, b, c) {
let answer, max;
if (a > b) max = a;
else max = b;
if (c > max) max = c;
if ((max = a) || ((b+c) > max))
answer = "YES";
else answer = "NO"
if ((max = b) || ((a+c) > max))
answer = "YES";
else answer = "NO";
if ((max = c) || ((a+b) > max))
answer = "YES";
else answer = "NO";
return answer;
}
console.log(solution(13, 33, 17));
</script>
</body>
</html>
단순하게 풀었을뿐더러 그냥 아주 틀린 코드다🤔
sum변수를 만들어줬어야했다.
function solution(a, b, c) {
let answer, max;
if (a > b) max = a;
else max = b;
if (c > max) max = c;
let sum = (a + b + c);
if ((sum - max) > max)
answer = "YES";
else answer = "NO";
return answer;
}
console.log(solution(6, 7, 11));
또는 answer값을 처음부터 YES로 넣어주고, 틀렸을때만 NO로 바꿔줘도된다.
연필 개수
연필 1 다스는 12자루입니다. 학생 1인당 연필을 1자루씩 나누어 준다고 할 때 N명이 학생수 를 입력하면 필요한 연필의 다스 수를 계산하는 프로그램을 작성하세요.
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(n) {
let answer;
let pack = 12;
if (n%pack==0) answer = n/pack;
else answer = (parseInt(n/pack) + 1);
return answer;
}
console.log(solution(178));
</script>
</body>
</html>
1다스 12로 나누어떨어지면 사람수에서 12로 나눈 값을 반환하고, 그렇지않다면 나눈 몫에 +1을 해서 반환하였다.
또는 나눈값이 나눠 떨어지지않고 소숫점이 있다면 ceil을 사용하여 올림시킨 값을 반환시킬수도있다.
function solution(n) {
let answer = Math.ceil(n/12);
return answer;
}
Math - JavaScript | MDN
Math는 수학적인 상수와 함수를 위한 속성과 메서드를 가진 내장 객체입니다.
developer.mozilla.org
문제 출처: 인프런 강의 <<자바스크립트 알고리즘 문제풀이(코딩테스트 대비)>> by 김태원 강사님
'개발공부 > 알고리즘' 카테고리의 다른 글
[JS] 홀수구하기, 1의자리 숫자가 일치하는 값 찾기 (0) | 2021.07.01 |
---|---|
[JS] 최솟값구하기 (0) | 2021.06.30 |
[JS] CodeSignal 기초 문제(aka. the journey begins) (0) | 2021.05.02 |
[파이썬] 백준 1149번 RGB거리 (0) | 2021.05.02 |
[파이썬] 백준 9461 파도반 수열 (0) | 2021.05.02 |