[Programmers] 2022-09-26 문제풀이

김택수·2022년 9월 26일
0

짝수와 홀수

풀이

function solution(num) {
    let answer = '';
    if(Math.abs(num) % 2 === 1) {
        answer =  "Odd"
    } else if(Math.abs(num) % 2 === 0) {
        answer = "Even"
    }
    
    return answer;
}

1) 첫 풀이에서는 %연산자 사용이 익숙치 않아 나머지를 1와 0으로 두고 비교하지 않고 당연히 2로 나눈 값을 넣는 연산자라고 생각했음. 사용법에 익숙해져야 할 것 같음. (%연산자 사용 시 나눌 값과 비교할 값을 넣어야한다.)

2) Math.abs 메서드를 사용했다. Math.abs는 주어진 숫자의 절대값을 반환하며 주어진 숫자가 양수나 0일 경우엔 주어진 숫자를, 음수라면 그 수의 양수값을 반환한다. 그래서 주어진 num값을 절대값으로 만들고 그 후에 %연산자를 이용해 음수와 양수를 구했다.

평균구하기

풀이

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

1) 인자로 받은 배열의 모든 요소들을 for문을 통해 answer에 전부 더해준다.

2) 더해준 값을 배열의 길이만큼 나눠준 값을 리턴해 해결

약수의 합

풀이

function solution(n) {
    var answer = 0;
    for(i=1; i <= n; i++) {
        if(n % i == 0) {
            answer += i
        }
    }
    return answer;
}

1) 약수가 뭔지 몰랐음... n이라는 값을 나머지 없이 나눌 수 있는 모든 수라고 이해했음.

2) for문을 돌려야 한다는 것 까지는 접근이 가능했다. 어쨌든 n값을 i로 나눴을 때 나머지가 없이 떨어져야 약수의 조건에 충족하기 때문에 for문 안에 if문을 써서 조건에 맞는다면 answer에 모든 약수를 더해주고 리턴했다.

자릿수 더하기

풀이

function solution(n)
{
    var answer = 0;
    const string = String(n)
    const ArrayN = string.split("");
    for(i in ArrayN) {
        answer += Number(ArrayN[i])
    }

    return answer;
}

1) 배열로 바꿔 모든 요소를 더하면 된다는 것까지는 접근이 가능했음. split사용까지 유추했음.

2) 그대로 적용했더니 split메서드가 사용이 되지 않음. 이유는 n값은 숫자이기 때문에 문자열로 변환 후 split을 사용해줘야 함. 사용 시 인자로 ""값을 줘서 매 텍스트마다 잘라서 배열로 변환해준다.

3) for문을 통해서 배열로 바꾼 ArrayN값을 answer에 저장해줬는데, 처음에는 0123 이런식으로 나와서 고민하던 중, String이기 때문에 값을 그대로 글자로 더해줘서 저장이 된 것을 파악하고, Number로 변환해서 해결 가능했음.

profile
개발자 키우기 Lv1

0개의 댓글