본문 바로가기

이노베이션 캠프/Week( 과제 )

[이노베이션 캠프 2주차 알고리즘 공부]

<과제>

알고리즘 문제를 조원들과 푸시오. 팀원들과 알고리즘 문제를 해결하여 서로에게 설명하는 방식으로 공부하시오.

 

<공부방식>

아는 게 하나도 없었기 때문에 답지를 먼저 보고, 답지의 내용을 이해하려고 노력했다.

답지를 보더라도 for문 형식조차 몰랐기 때문에, 일일히 구글링을 하고 유튜브 영상을 참고했다. 

 

<느낀점>

처음부터 찬찬히 배우는 게 좋지않았을까 싶은 마음이 막 들기도 했다. 아무것도 모르는 상태에서 응용문제부터 본다는 게 쉬운 일이 아니었다. 정말 스파르타라는 말이 딱 맞는 캠프였다. 이 캠프는 스파르타코딩클럽에서 운영하고 있다. 

 


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

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => { const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    const row = '*'.repeat(a)

// *을 a 만큼 한 줄로 찍음. for(let i =0; i < b; i++){ // 입력 값 b(3) 만큼 반복문을 돌린다. console.log(row) } });


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

    if(num % 2 == 0) // #num이 짝수라면
        return "Even"
    } else { //만약 짝수가 아니라면(홀수라면)
    return "Odd"
    }

    return answer;
}

3. 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
        function solution(s) { //단어 s를 넣었을 때
    var answer = '';

    if (s.length % 2 == 0 ) { // 단어 s의 길이가 짝수일 경우,
        answer = s[s.length / 2 - 1] + s[s.length / 2]; //단어 길이의 절반 값-1 , 단어 길의 절반 값
    } else {
        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;
    let num = [];
    if (a === b) { //a와 b가 같다면
        answer = a;
    } else { //a와 b가 같지 않다면
        num.push(a,b); // [a,b]
        num.sort((a,b)=>a-b); // 오름차순으로 a,b를 정리해라
        for (let i=num[0]; i<num[1]+1; i++) { // 어디부터 어디까지 이런 방식으로 반복해줘라. 어디부터: i= 가장 첫번 째 값; 어디까지: 가장 끝 값+1보다 작기; i를 계속해서 더하기.
            answer += i // answer에다가 계속 i를 더하기.
        }
    }

    return answer;
}

}

5. 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
    function solution(s) {
    return parseInt(s);
}

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

    function solution(numbers) { //
    var answer = 0;
    for(let i=0; i<=9; i++){ //i는 0부터 9까지 계속 더해라
        if(!numbers.includes(i)) answer += i; // numbers에 i가 없다면, answer에 그 i 값들을 계속 더해라
    }
    return answer;