본문 바로가기

자료집

1+2일차 알고리즘 문제

1.이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
//데이타를 분할해서 n값에 고정
    const n = data.split(" ");
//첫번째([0])변수 n의 숫자 값을 a에 고정 및 두번째([1])변수 n의 숫자 값을 b에 고정
    const a = Number(n[0]), b = Number(n[1]);
//*표를 상수a값 만큼반복해서 str값에 넣어준다
    let str = "*".repeat(a); 
//i 값은 1번째 부터 상수 b보다 작은 수번째 까지의 범위를 가지고 +1씩 하며 이를 상수a번만큼 반복해 찍은 *만큼 콘솔에 표기하는 것을 반복문(for)를 통해 콘솔에 반복해서 찍어준다
    for(let i=0; i<b; i++) {
        console.log(str);
    }
});

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


function solution(num) {
//answer 값을 변수(var)로 지정
    var answer = '';
//숫자를 2로 나누어 0이 남으면(=짝수) answer값을 even으로 한다
    if (num % 2 == 0){
        return answer ="Even";
//위의 if문이 아닐시(나누어서 1이남으면=홀수) answer값을 odd로 한다
    }else{
        return answer = "Odd";
    }
//문제에서 숫자 0은 짝수로 한정 하였기에 0은 even으로 한다
    if (num = '0'){
        return answer = 'Even';
    }
//var로 지정된 함수값answer에 위의 함수의 값을 호출함 
    return answer;
}


3. 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

function solution(s) {
//answer값을 공백으로 초기화
    var answer =''
//단어의 길이가 2로 나누어 0이 남으면 짝수
    if(s.length%2 == 0){
//단어의 길이/2-1번째 단어 + 단어의 길이/2번째 단어(단어의 첫번째는 0부터 센다)
        answer = s[s.length/2-1] + s[s.length/2]
    } else{
//홀수 단어의 길이를 /2 하면 소수점이 나오기 때문에 Math.floor(주어진 숫자와 같거나작은 정수중 가장 큰수로 반환)한단어를 선택한다
        answer = s[Math.floor(s.length/2)]
    }
    return answer;
}

4.두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

function solution(a, b) {
    var answer = 0;
    // a값이 b값보다 같거나 클 경우 if문 실행합니다.
    if(a>=b){
    // b값으로 i값을 초기화합니다. 그리고 만약에 a값이 5일 경우 5와 같거나 클때까지 b값부터 시작해서 i값을 증가시킵니다.
        for(let i=b; i<=a; i++){
        // b값인 i값을 answer값과 더합니다.
            answer+=i;
        }
    }else{
        // a<=b일 경우, a값으로 j값을 초기화합니다. 그리고 만약에 b값이 5일 경우 b값과 같거나 클 때까지 a값인 j를 증가 시킵니다.
        for(let j=a; j<=b; j++){
        // a값인 j값을 answer값과 더합니다.
            answer+=j; 
        } 
    }
    return answer;

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

function solution(s) {
//parseInt(i는대문자)로 문자로 오는 값(s)를 강제로 숫자(정수)로 변경하여 answer값에 입력
    var answer = parseInt(s);
    return answer;
}

6. 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.


function solution(numbers) {
    var answer = 0;
    
    for(let i = 0; i<= 9; i++){
//numbers에 포함된 수를 확인(includes)한뒤 그것이 아닌숫자(!) 들을 answer값에 더한값을 answer값 으로 한다.
        if(!numbers.includes(i)) answer += i;
    }
    
    return answer;
}

7. 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.

function solution(absolutes, signs) {
    var answer = 0;

//absolutes의 길이가 1~1000까지므로 i값을 0부터 999까지(i<absolutes.length) 설정한뒤 그걸 하나씩 늘려가는 형식으로 하며    
    for(let i = 0; i < absolutes.length; i++) {
//sighs 값이 참일때는 absolutes 값을 더하고(?) 아닐때는(:) absolutes값을 answer값에서 뺀값을 answer값으로 한다
        signs[i] ? answer+= absolutes[i] : answer-=absolutes[i];
    }
    
    return answer;
}

8. 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.

function solution(arr) {
//arr값을 초기화함
    let arr_plus = 0;
//i는 0부터 arr의 수보다 작고 arr_plus는 arr에 들어오는 수들의 합이된다
    for(i=0; i<arr.length; i++ ){
        arr_plus+=arr[i]
    }
//최종적으로 arr_plus(arr값들의 총합)을 arr의 수로 나눈 값을 answer값으로 설정한다.
    let answer = arr_plus/arr.length;
    return answer;
}

'자료집' 카테고리의 다른 글

React 입문주차 S.A.  (0) 2022.05.20
메소스 모음집/최종 update 22-05-18  (0) 2022.05.18
JWT에 대한 정의  (0) 2022.05.15
API에 대한 정의  (0) 2022.05.15
Java Script methoth정리  (0) 2022.05.15