🎲 짝수와 홀수

💡 문제 설명

정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.

💡 제한 조건

  • num은 int 범위의 정수입니다.
  • 0은 짝수입니다.



💡 기본 코드

function solution(num) {
    var answer = '';
    return answer;
}

💡 정답 코드

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

💡 문제 풀이

문제 푸는 과정

  1. num이 짝수인지 홀수인지 판별한다.
  2. 짝수라면 "Even"을, 홀수라면 "Odd"를 return 한다.

정수가 짝수인지 홀수인지 아는 방법은 2로 나누는 것이다. 짝수라면 2로 나눠지고, 홀수라면 2로 나눠지지 않기 때문이다. 따라서 2로 나눴을 때 나머지가 없다면 짝수이고 그외 나머지의 경우는 홀수이다.


문제 링크 🔗 : 짝수와 홀수



🎲 약수의 개수와 덧셈

💡 문제 설명

두 정수 leftright가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

💡 제한 조건

  • 1 ≤ leftright ≤ 1,000


💡 기본 코드

function solution(left, right) {
    var answer = 0;
    return answer;
}

💡 정답 코드

function solution(left, right) {
    var answer = 0;
    
    for(let i=left; i<=right; i++){
        let cnt = 0;
        for(let j=1; j<=i; j++){
            if(i%j === 0) cnt++;
        }
        cnt%2 === 0 ? answer+=i : answer-=i;
    }
        
    return answer;
}

💡 문제 풀이

문제 푸는 과정

  1. 반복문을 left에서 right까지 돌려 약수의 개수를 확인할 수를 체크한다.
  2. i의 약수를 찾기 위해 반복문을 돌린다.
  3. 약수의 홀짝을 판별해서 짝수면 해당되는 약수를 더하고 홀수면 뺀다.

leftright까지의 모든 수를 확인하기 위해 i 반복문을 돌린다. i 반복문 안에서 i의 약수의 개수를 cnt로 저장한다. cnt는 i가 바뀔 때마다 0으로 초기화해야 한다. i에 대한 약수를 찾기 위해 j 반복문을 1부터 i까지 돌린다. 약수는 1부터 자기자신 까지의 수 중 자신을 나눌 수 있는 수를 뜻하기 때문이다. 만약 i가 j로 나눠진다면 약수라는 뜻이므로 cnt를 증가시킨다. j반복문이 끝나면 약수를 모두 체크했기 때문에 홀수 짝수를 체크하여 answer에 값을 넣는다.


문제 링크 🔗 : 약수의 개수와 덧셈



🎲 서울에서 김서방 찾기

💡 문제 설명

String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

💡 제한 조건

  • seoul은 길이 1 이상, 1000 이하인 배열입니다.
  • seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
  • "Kim"은 반드시 seoul 안에 포함되어 있습니다.


💡 기본 코드

function solution(seoul) {
    var answer = '';
    return answer;
}

💡 정답 코드

function solution(seoul) {

    return'김서방은 '+ seoul.indexOf("Kim")+'에 있다';
}

💡 문제 풀이

배열의 원소값을 찾는 indexOf() 메서드를 활용하여 위치를 찾는다.

  • Array.indexOf(value) : Array에 value 값이 있다면 value의 위치를 return 한다. 만약 없다면 -1을 return 한다.

문제 링크 🔗 : 서울에서 김서방 찾기



🎲 문자열을 정수로 바꾸기

💡 문제 설명

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

💡 제한 조건

  • s의 길이는 1 이상 5이하입니다.
  • s의 맨앞에는 부호(+, -)가 올 수 있습니다.
  • s는 부호와 숫자로만 이루어져있습니다.
  • s는 "0"으로 시작하지 않습니다.


💡 기본 코드

function solution(s) {
    var answer = 0;
    return answer;
}

💡 정답 코드

function solution(s) {
    return +s;
}

💡 문제 풀이

자바스크립트에서는 문자열에 +기호를 붙이면 숫자로 인식한다. 단 문자열에 숫자가 아닌 값이 있다면 NaN을 return 한다.


문제 링크 🔗 : 문자열을 정수로 바꾸기



🎲 자연수 뒤집어 배열로 만들기

💡 문제 설명

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

💡 제한 조건

  • n은 10,000,000,000이하인 자연수입니다.


💡 기본 코드

function solution(n) {
    var answer = [];
    return answer;
}

💡 정답 코드

function solution(n) {
    return n.toString().split('').reverse().map(m => parseInt(m));
}

💡 문제 풀이

문제 푸는 과정

  1. n은 문자열로 만들어 한자리씩 잘라 배열에 저장한다.
  2. 만들어진 배열을 뒤집어 원소들을 정수로 바꾼다.

n을 문자열로 만들기 위해 toString()을 사용하였다. 문자열로 바꾼 이유는 split을 통해 한자리씩 잘라서 배열로 저장하기 위해서이다. 배열로 저장하면 reverse를 통해 뒤집을 수 있다. 뒤집은 후 map을 사용해 배열 안의 값을 하나씩 정수로 바꾼다.

  • toString() : 문자열로 바꾸기 위해 사용한다.
  • split() : 원하는 기준값으로 자르기 위해 사용한다.
  • reverse() : 배열 안의 요소를 뒤집는다.
  • parseInt() : 정수형으로 바꾼다.

문제 링크 🔗 : 자연수 뒤집어 배열로 만들기



profile
헐 제가 회사를 다니면서 개발을 하고 있어요 이게 무슨 일이죠?

0개의 댓글