JavaScript - 프로그래머스 레벨 : 0(24) - Relatively New

먹보·2024년 3월 28일
0

1. 공백으로 구분하기 2

문제 설명

단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

예제

코드

function solution(my_string) {
  return my_string.split(' ').filter((el) => Boolean(el));
}

🗒️코멘트

NULL


2. 배열의 원소만큼 추가하기

문제 설명

아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요.

예제

코드

function solution(arr) {
  const sum = arr.reduce((a,b) => a+b);
  let X = new Array(sum);
  let startFillingIndex = 0;
  arr.forEach((el) => {
    X.fill(el,startFillingIndex);
    startFillingIndex += el;
  });
  return X
}

🗒️코멘트

사실 해당 문제를 풀 때 고민을 많이 했었다.

여러가지 방법이 머릿속에 생각났지만 (for문 이용하기, repeat 이용하기 등) 다른 방식으로 접근하고 싶었고 그래서 택한게 new Array()로 저장량을 먼저 정해놓고 그 안을 fill method를 사용해 채우는 것이다.

결과적으로는 성공적!!

새로운 시도는 문제를 푸는데 걸리는 시간을 더 걸리게 할 지언정 내게 재미를 안겨준다.


3. 순서 바꾸기

문제 설명

정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.

예제

코드

function solution(num_list, n) {
  return num_list.slice(n).concat(num_list.slice(0, n));
}

🗒️코멘트

NULL


4. 0 떼기

문제 설명

정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.

예제

코드

function solution(n_str) {
  while (n_str.startsWith('0')){
    n_str = n_str.substring(1)
  }
  return n_str
}

//다른 풀이
const solution = (str) => String(Number(str))

🗒️코멘트

다른 분의 코드를 보게 되었는데 발상의 전환이 돋보였다...

숫자로 변경하면 바로 0이 제거된다는 사실을..생각도 못했다.


5. X 사이의 개수

문제 설명

문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.

예제

코드

function solution(myString) {
  return myString.split('x').map((el) => el.length);
}

🗒️코멘트

NULL


6. 꼬리 문자열

문제 설명

문자열들이 담긴 리스트가 주어졌을 때, 모든 문자열들을 순서대로 합친 문자열을 꼬리 문자열이라고 합니다. 꼬리 문자열을 만들 때 특정 문자열을 포함한 문자열은 제외시키려고 합니다. 예를 들어 문자열 리스트 ["abc", "def", "ghi"]가 있고 문자열 "ef"를 포함한 문자열은 제외하고 꼬리 문자열을 만들면 "abcghi"가 됩니다.

문자열 리스트 str_list와 제외하려는 문자열 ex가 주어질 때, str_list에서 ex를 포함한 문자열을 제외하고 만든 꼬리 문자열을 return하도록 solution 함수를 완성해주세요.

예제

코드

function solution(str_list, ex) {
  let result = "";
  str_list.forEach((el) => {
    if(!el.includes(ex)){
      result += el;
    }
  })
  return result;
}

🗒️코멘트

NULL


7. 할 일 목록

문제 설명

오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

예제

코드

function solution(todo_list, finished) {
  const unfinishedBusinessList = [];
  todo_list.forEach((el, i) => {
    if (!finished[i]) {
      unfinishedBusinessList.push(el)
    }
  })
  return unfinishedBusinessList;
}

🗒️코멘트

NULL


8. 배열의 원소 삭제하기

문제 설명

정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.

예제

코드

function solution(arr, delete_list) {
  return arr.filter((el) => !delete_list.includes(el));
}

🗒️코멘트

NULL


9. 부분 문자열 이어 붙여 문자열 만들기

문제 설명

길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

예제

코드

function solution(my_strings, parts) {
  let combinedWords = "";
  my_strings.forEach((el, i) => {
    combinedWords += el.slice(parts[i][0],parts[i][1]+1);
  })  
  return combinedWords;
}

🗒️코멘트

항상 헷갈리는..slice의 포함 범위..그냥 수학에서 range from A to B에서 괄호의 역할을 생각해보면 될 것 같은데.


10. ad 제거하기

문제 설명

문자열 배열 strArr가 주어집니다. 배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.

예제

코드

function solution(strArr) {
  return strArr.filter((el) => !el.includes('ad'))
}

🗒️코멘트

NULL


무난하게 마무리

하루 빨리 0레벨을 끝내고 1레벨 그리고 2레벨에 올라가서 3레벨과 4레벨을 도전하고 싶다.

4월부터는 LeetCode Daily Challenge도 시작해야 하니 할게 많다.

profile
🍖먹은 만큼 성장하는 개발자👩‍💻

0개의 댓글