inblog logo
|
algorithm-basic
    문제풀이

    행렬의 덧셈

    강석우's avatar
    강석우
    Jun 23, 2024
    행렬의 덧셈
    Contents
    문제 : 행렬의 덧셈문제 : 하샤드 수문제 : 콜라츠 추측문제 : 수박수박수박수박수박수?

    문제 : 행렬의 덧셈

    사용 메서드 : for() or map()

    풀이 과정 :

    1. 행렬을 배열에서 나타내면 2차원 배열

    2. 행렬의 덧셈을 위해서는 내부의 인자까지 들어가야함. => 이중 for문

    3. for문의 내부에서 덧셈을 통해 최종 결과 값을 answer에 저장해주기

    for문 version

    function solution(arr1, arr2) {
        let answer=[[]];
        for(let i = 0; i<arr1.length; i++){
            answer[i] = []
            for(let j=0;j<arr1[0].length;j++){
                answer[i][j] = arr1[i][j]+arr2[i][j]
            }
        }
        return answer;
    }

    map version

    function solution(arr1,arr2){
        let answer;
        answer = arr1.map((value1,index1)=> value1.map((value2,index2)=> value2+arr2[index1][index2] ))
        return answer
    }

    문제 : 하샤드 수

    사용 메서드 : toString(), split(), reduce()

    풀이 과정 :

    1. 받아온 숫자를 자릿수 별로 계산을 해주어야 한다.

      1. 숫자를 문자열로 변경한다.

      2. 변경된 문자열을 자릿수 별로 배열화 한다.

    2. 배열을 모두 더해준다.

      1. 배열 안의 인자들은 문자열이므로 형변환을 시켜준 뒤 덧셈을 진행한다.

    3. 초기 값과 덧셈 값의 나머지 판단 후 true, false를 보여준다.

    function solution(x) {
        let temp = x.toString().split('')
        let sum = temp.reduce((acc,cur)=>{
            return +acc + +cur
        })
        return x%sum===0 ;
    }

    문제 : 콜라츠 추측

    풀이 과정 :

    1. 결과 값으로 나타낼 count를 입력.

    2. while 문을 통해 조건이 만족 될때까지 무한 반복문을 돌려준다.

      1. 총 500번만 반복하면 되므로 count !== 500

      2. 숫자가 1이면 그만 둬야하므로 num !== 1

    3. 제공된 조건 대로 짝수일 때와 홀수일 때의 조건을 작성해준다.

    4. 제공된 num 값에 따라 count 또는 -1을 반환해준다.

    function solution(num) {
        let count = 0;
        while(num !== 1 && count !== 500){
            if(num%2===0){
                num = num/2
            }else{
                num = num * 3 + 1
            }
            count++
        }
        return num===1 ? count : -1;
    }

    문제 : 수박수박수박수박수박수?

    사용 메서드 : repeat()

    풀이 과정 :

    1. ‘수박’ 단어 한 개는 n이 짝수일 때 나올 수 있는 단어.

      1. repeat() 메서드를 사용해 n/2만큼 ‘수박’ 단어를 반복해주자.

    2. n이 홀수일 때 ‘수’ 를 추가 적으로 붙여주자.

      1. 삼항연산자를 사용하자.

    function solution (n){
        return '수박'.repeat(n/2) + (n %2 === 1 ? '수' : '')
    }

    Share article
    Contents
    문제 : 행렬의 덧셈문제 : 하샤드 수문제 : 콜라츠 추측문제 : 수박수박수박수박수박수?

    algorithm-basic

    RSS·Powered by Inblog