프로그래머스 | Lv.1_연습문제_Part.2_JS

김명성·2021년 10월 19일
0

Algorithm

목록 보기
36/61
post-thumbnail

난이도 : Level. 1
언어 : Javascript
출제 내역 : 연습문제

전체 풀이 코드 👈🏻 클릭시 Github로 이동

❓ Question 1

평균 구하기

  • 주어진 배열의 숫자들을 더하고 평균을 구하기

📝 My Solution 1

function solution(arr) {
    var answer = 0;
        for (let i = 0; i<arr.length; i++) {
            answer += arr[i]
        }
    return answer/arr.length;
}

반복문으로 배열 숫자들을 더하고, 마지막에 배열 길이로 나눠줍니다

결과


❓ Question 2

콜라츠 추측

  • 어떤 수가 짝수면 2로 나누고, 홀수면 3을 곱한 뒤 1을 더해
    결국 어떤 수가 1이 될 때까지 작업한 횟수 구하기 (단, 500회가 넘으면 -1)

📝 My Solution 2

function solution(num) {
    var answer = 0;
        for (let i = 0; i<=500; i++) {
            if (i === 500) {
                answer = -1;
                break;
            } else if (num === 1) {
                answer = i;
                break;
            }
            else {
                if (num%2 === 0) {
                    num = num/2 
                } else {
                    num = num*3 + 1
                }
            }
        }
    return answer;
}

우선 500회가 되면 -1을 반환하는 조건과
num이 1이 되면 반복문을 멈추는 조건을 걸어주고,
위의 조건대로 조건문을 작성했습니다.

결과


❓ Question 3

최대공약수와 최소공배수

  • 배열 안 두개의 숫자의 최대공약수와 최소공배수 구하기

📝 My Solution 3

function solution(n, m) {
    var answer = [];
        for (let i = n; i>0; i--) {
            if (n%i === 0 && m%i === 0) {
                answer.push(i)
                break;
            }
        }
        for (let l = m; l<=n*m; l++) {
            if (l%n === 0 && l%m === 0) {
                answer.push(l)
                break;
            }
        }
    return answer;
}

반복문을 두번 사용했는데, 최대공약수를 먼저 구하고
최소공배수를 구해 배열에 넣는 방식으로 풀었습니다.

결과


❓ Question 4

짝수와 홀수

  • 인자로 들어온 수가 짝수인지 홀수인지 판단하기

📝 My Solution 4

function solution(num) {
    var answer = '';
    return num%2 === 0 ? answer = 'Even' : answer = 'Odd'
}

num 을 2로 나눠서 나머지가 0이면 짝수, 아니면 홀수로 결과를 냈습니다.

결과


❓ Question 5

제일 작은 수 제거하기

  • 숫자 배열에서 제일 작은 수 제거하기

📝 My Solution 5

function solution(arr) {
    var answer = [];
    if (arr.length === 1) {
        answer.push(-1)
    } else {
        let minNum = arr[0]
        for (let i = 1; i<arr.length; i++) {
            if (minNum > arr[i]) {
                minNum = arr[i]
            }
        }
        arr.splice(arr.indexOf(minNum),1)
        answer = arr
    }
    return answer;
}

배열의 길이가 1일때는 -1을 출력하는 조건을 먼저 주고
아닐 경우 기준이 되는 숫자 하나를 정해서 한번 반복하게 돌려 준 뒤,
splice를 이용해 해당 수를 제거하고 반환합니다.

결과

profile
잠재력은 핵폭탄급 Frontend Developer

0개의 댓글

관련 채용 정보