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));
## 차이점

- 없다.

1.4 1부터 N까지의 합