daily 알고리즘 : 프로그래머스 1 level 18일차

소히·2022년 11월 22일
0

알고리즘Daily

목록 보기
22/22
post-thumbnail

나머지가 1이 되는 수 찾기


문제

자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.


제한사항

  • 3 ≤ n ≤ 1,000,000

입출력 예

  • 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.

풀이

function solution(n) {
  let i = 1;
  while (i <= n) {
    if (n % i === 1) {
      return i;
    }
    i++;
  }
}

가운데 글자 가져오기


문제

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


제한사항

  • s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

  • "abcde"의 출력은 "c"

풀이

function solution(s) {
  let middle = ~~(s.length / 2);
  return s.length % 2 === 0 ? `${s[middle - 1]}${s[middle]}` : s[middle];
}


행렬의 덧셈


문제

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.


제한사항

  • 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.

입출력 예

  • [[1,2],[2,3]] [[3,4],[5,6]] => [[4,6],[7,9]]

풀이

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

0개의 댓글