ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 항해 99 알고리즘 풀이 2일차(2)
    알고리즘 풀이 2021. 11. 12. 22:45

    1.2016년

     

    문제 설명

    2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.

    제한 조건
    • 2016년은 윤년입니다.
    • 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)

    입출력 예

    a b result
    5 24 "TUE"

     

    문제풀이

    function solution(a, b) {
        var answer = '';
        var dayOfWeek = ["THU","FRI","SAT","SUN","MON","TUE","WED"]; //요
        var sumDay =[31,29,31,30,31,30,31,31,30,31,30,31];
        var sum = 0;
        for(var i =0;i<a-1;i++){
            sum += sumDay[i];
        }
        sum += b;
        var ans = (sum % 7);
        answer = dayOfWeek[ans];
        return answer;
    }
     
     
    2.나누어 떨어지는 숫자 배열
    문제 설명

    array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
    divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

    제한사항
    • arr은 자연수를 담은 배열입니다.
    • 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
    • divisor는 자연수입니다.
    • array는 길이 1 이상인 배열입니다.
    입출력 예
    arr divisor return
    [5, 9, 7, 10] 5 [5, 10]
    [2, 36, 1, 3] 1 [1, 2, 3, 36]
    [3,2,6] 10 [-1]
    입출력 예 설명

    입출력 예#1
    arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라서 [5, 10]을 리턴합니다.

    입출력 예#2
    arr의 모든 원소는 1으로 나누어 떨어집니다. 원소를 오름차순으로 정렬해 [1, 2, 3, 36]을 리턴합니다.

    입출력 예#3
    3, 2, 6은 10으로 나누어 떨어지지 않습니다. 나누어 떨어지는 원소가 없으므로 [-1]을 리턴합니다.

     

    문제풀이

    function solution(arr, divisor) {
        var answer = [];
        for(let i = 0 ; i < arr.length ; i++){
            if(arr[i]%divisor ===0){
                answer.push(arr[i]) //나누어 떨어지는 것을 배열에 담고
            }
        }
        answer.sort((a,b)=>a-b)//오름차순 정렬
       
        if(answer.length === 0){ //배열에 아무것도 없으면
            answer.push(-1) //-1을 넣어준다.
        }
        return answer;
    }

     

    3. 내적

    문제 설명

    길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.

    이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이)


    제한사항
    • a, b의 길이는 1 이상 1,000 이하입니다.
    • a, b의 모든 수는 -1,000 이상 1,000 이하입니다.

     

    입출력 예
    a b result
    [1,2,3,4] [-3,-1,0,2] 3
    [-1,0,1] [1,0,-1] -2

    입출력 예 설명

    입출력 예 #1

    • a와 b의 내적은 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 입니다.

    입출력 예 #2

    • a와 b의 내적은 (-1)*1 + 0*0 + 1*(-1) = -2 입니다.

    문제풀이

    function solution(a, b) {
      let answer = 0;
      for (let i = 0; i < a.length; i++){
        answer += a[i]*b[i]
        console.log(answer)
      }
      return answer
    }
Designed by Tistory.