daily 알고리즘 : 프로그래머스 0 level 10일차

소히·2022년 11월 9일
0

알고리즘Daily

목록 보기
14/22
post-thumbnail

모음 제거


문제

영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.


제한사항

  • my_string은 소문자와 공백으로 이루어져 있습니다.
  • 1 ≤ my_string의 길이 ≤ 1,000

입출력 예

  • "nice to meet you"에서 모음 i, o, e, u를 모두 제거한 "nc t mt y"를 return합니다.

풀이

function solution(my_string) {
  let word = ["a", "e", "i", "o", "u"];
  let answer = "";
  my_string.split("").map((el) => {
    if (!word.includes(el)) answer += el;
  });
  return answer;
}

소인수분해


문제

소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 2 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.


제한사항

  • 2 ≤ n ≤ 10,000

입출력 예

  • 420을 소인수분해하면 2 2 3 5 7 입니다. 따라서 [2, 3, 5, 7]을 return합니다.

풀이

function solution(n) {
  let answer = [];
  let i = 2;
  while (i <= n) {
    if (n % i === 0) {
      n = n / i;
      answer.push(i);
    } else {
      i++;
    }
  }
  return [...new Set(answer)];
}


배열 원소의 길이


문제

문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.


제한사항

  • 1 ≤ strlist 원소의 길이 ≤ 100
  • strlist는 알파벳 소문자, 대문자, 특수문자로 구성되어 있습니다.

입출력 예

  • ["I", "Love", "Programmers."]의 각 원소의 길이인 [1, 4, 12]을 return합니다.

풀이

function solution(strlist) {
  let answer = [];
  for (let i of strlist) {
    answer.push(i.length);
  }
  return answer;
}

7의 개수


문제

머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 0 ≤ array의 원소 ≤ 100,000

입출력 예

  • [7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다.

풀이

function solution(array) {
  return array
    .join("")
    .split("")
    .filter((el) => el === "7").length;
}

로그인 성공?


문제

머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.

  • 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.
  • 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다.

제한사항

  • 회원들의 아이디는 문자열입니다.
  • 회원들의 아이디는 알파벳 소문자와 숫자로만 이루어져 있습니다.
  • 회원들의 패스워드는 숫자로 구성된 문자열입니다.
  • 회원들의 비밀번호는 같을 수 있지만 아이디는 같을 수 없습니다.
  • id_pw의 길이는 2입니다.
  • id_pw와 db의 원소는 [아이디, 패스워드] 형태입니다.
  • 1 ≤ 아이디의 길이 ≤ 15
  • 1 ≤ 비밀번호의 길이 ≤ 6
  • 1 ≤ db의 길이 ≤ 10
  • db의 원소의 길이는 2입니다.

입출력 예

  • db에 아이디는 같지만 패스워드가 다른 계정이 있으므로 "wrong pw"를 return합니다.

풀이

function solution(id_pw, db) {
  let answer = "fail";
  [...db].map((el) => {
    id_pw[0] === el[0] && id_pw[1] === el[1] && (answer = "login");
    id_pw[0] === el[0] && id_pw[1] !== el[1] && (answer = "wrong pw");
  });
  return answer;
}

0개의 댓글