1 기본문제
source: categories/study/algorithm/algorithm.md
1.1 세 수 중 최솟값
-
100 이하의 자연수 A, B, C를 입력받아 세 수 중 가장 작은 값을 출력하는 프로그램을 작성하세요. (정렬을 사용하면 안됩니다)
- 입력설명: 첫번재 줄에 100 이하의 세 자연수가 입력된다.
- 출력설명: 첫번째 줄에 가장 작은 수를 출력한다.
- 입력예제1: 6, 5, 11
- 출력예제1: 5
// 내가 푼 답
function solution(a, b, c) {
let answer;
if (a > b) {
answer = Math.min(b, c);
} else {
answer = Math.min(a, c);
}
return answer;
}
console.log(solution(2, 5, 1));
console.log(solution(6, 5, 11));
// 강의 답
function solution(a, b, c) {
let answer;
if (a < b) answer = a;
else answer = b;
if (c < answer) answer = c;
return answer;
}
console.log(solution(2, 5, 1));
## 차이점
1. 강의 답에서는 Math.min 메소드를 사용하지 않았다.
1.2 삼각형 판별하기
-
길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있으면 "YES"를 출력하고, 만들 수 없으면 "NO"를 출력한다.
- 입력설명: 첫번째 줄에 100 이하의 서로 다른 A, B, C 막대의 길이가 주어진다.
- 출력설명: 첫번째 줄에 "YES", "NO"를 출력한다.
- 입력예제1: 6, 7, 11
- 출력예제1: YES
- 입력예제2: 13, 33, 17
- 출력예제2: NO
// 내가 푼 답
function solution (a, b, c) {
let answer;
const max = Math.max(a, b, c);
if (a + b + c - max < max) {
answer = "NO";
} else {
answer = "YES";
}
return answer;
}
console.log(solution(6, 7, 11));
console.log(solution(13, 33, 17));
// 강의 답
function solution(a, b, c) {
let answer = "YES", max;
let tot = a + b + c;
if (a > b) max = a;
else max = b;
if (c > max) max = c;
if (tot - max <= max) answer = "NO";
return answer;
}
console.log(solution(6, 7, 11));
console.log(solution(13, 33, 17));
## 차이점
1. 강의 답에서는 Math.max 메소드를 사용하지 않았다.
2. answer 변수에 기본값 "YES"를 부여했다.
1.3 연필 개수
-
연필 1다스는 12자루입니다.
학생 1인당 연필을 1자루씩 나누어 준다고 할 때 N명의 학생수를 입력하면 필요한 연필의 다스 수를 계산하는 프로그램을 작성하세요.- 입력설명: 첫번째 줄에 1000 이하의 자연수 N이 입력된다.
- 출력설명: 첫번째 줄에 필요한 다스 수를 출력한다.
- 입력예제1: 25
- 출력예제1: 3
- 입력예제2: 178
- 출력예제2: 15
// 내가푼 답
function solution (n) {
let answer = Math.ceil(n / 12);
return answer
}
console.log(solution(25)); // 3
console.log(solution(178)); // 15
// 강의 답
function solution (n) {
let answer;
answer = Math.ceil(n / 12);
return answer;
}
console.log(solution(178));
## 차이점
- 없다.