# 프로그래머스/Javascript : 기초 문제 9일차

- Author: @laetipark
- Published: 2024-03-03
- Updated: 2024-05-21
- Source: http://blex.me/@laetipark/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4javascript-%EA%B8%B0%EC%B4%88-%EB%AC%B8%EC%A0%9C-9%EC%9D%BC%EC%B0%A8
- Tags: 프로그래머스, 코딩테스트, 기초문제

---

## [배열 만들기 5](https://school.programmers.co.kr/learn/courses/30/lessons/181912)

### 문제
문자열 배열 `intStrs`와 정수 `k`, `s`, `l`가 주어집니다. `intStrs`의 원소는 숫자로 이루어져 있습니다.

배열 `intStrs`의 각 원소마다 `s`번 인덱스에서 시작하는 길이 `l`짜리 부분 문자열을 잘라내 정수로 변환합니다. 이때 변환한 정수값이 `k`보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요.

- 제한사항
	- 0 ≤ `s` < 100
	- 1 ≤ `l` ≤ 8
	- 10l - 1 ≤ `k` < 10l
	- 1 ≤ `intStrs`의 길이 ≤ 10,000
		- `s` + `l` ≤ `intStrs`의 원소의 길이 ≤ 120

### 소스 코드
```javascript
const solution = (intStrs, k, s, l) => {
  let answer = [];
  intStrs.map(item => {
    const array = item.split('');
    let number = '';
    for (let i = s; i < s + l; i++) {
      number += array[i];
    }
    console.log(number);
    if (Number(number) > k) {
      answer.push(number);
    }
  });

  return answer.map(Number);
};
```

## [부분 문자열 이어 붙여 문자열 만들기](https://school.programmers.co.kr/learn/courses/30/lessons/181911)

### 문제
길이가 같은 문자열 배열 `my_strings`와 이차원 정수 배열 `parts`가 매개변수로 주어집니다. `parts[i]`는 `[s, e]` 형태로, `my_string[i]`의 인덱스 `s`부터 인덱스 `e`까지의 부분 문자열을 의미합니다. 각 `my_strings`의 원소의 `parts`에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

- 제한사항
	- 1 ≤ `my_strings`의 길이 = parts의 길이 ≤ 100
	- 1 ≤ `my_strings`의 원소의 길이 ≤ 100
	- `parts[i]`를 `[s, e]`라 할 때, 다음을 만족합니다.
	- 0 ≤ `s` ≤ `e` < `my_strings[i]`의 길이

### 소스 코드
```javascript
const solution = (my_strings, parts) => {
  let answer = [];
  for (let i = 0; i < parts.length; i++) {
    answer.push(my_strings[i].slice(parts[i][0], parts[i][1]+1));
  }
  return answer.join('');
};
```

## [문자열의 뒤의 n글자](https://school.programmers.co.kr/learn/courses/30/lessons/181910)

### 문제
문자열 `my_string`과 정수 `n`이 매개변수로 주어질 때, `my_string`의 뒤의 `n`글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.

- 제한사항
	- `my_string`은 숫자와 알파벳으로 이루어져 있습니다.
	- 1 ≤ `my_string`의 길이 ≤ 1,000
	- 1 ≤ `n` ≤ `my_string`의 길이

### 소스 코드
```javascript
const solution = (my_string, n) => {
  return my_string.slice(my_string.length - n);
};
```

## [접미사 배열](https://school.programmers.co.kr/learn/courses/30/lessons/181909)

### 문제
어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 `my_string`이 매개변수로 주어질 때, `my_string`의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

- 제한사항
	- `my_string`은 알파벳 소문자로만 이루어져 있습니다.
	- 1 ≤ `my_string`의 길이 ≤ 100

### 소스 코드
```javascript
const solution = (my_string) => {
  let answer= []
  for (let i = 1; i <= my_string.length; i++) {
    answer.push(my_string.slice(my_string.length - i));
  }

  return answer.sort();
};
```

## [접미사인지 확인하기](https://school.programmers.co.kr/learn/courses/30/lessons/181908)

### 문제
어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 `my_string`과 `is_suffix`가 주어질 때, `is_suffix`가 `my_string`의 접미사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.

- 제한사항
	- 1 ≤ `my_string`의 길이 ≤ 100
	- 1 ≤ `is_suffix`의 길이 ≤ 100
	- `my_string`과 `is_suffix`는 영소문자로만 이루어져 있습니다.

### 소스 코드
```javascript
const solution = (my_string, is_suffix) => {
  const suffix = my_string.slice(my_string.length - is_suffix.length);
  return suffix.includes(is_suffix) ? 1 : 0;
};
```

- `is_suffix` 길이 만큼 뒤에서 `slice`해준 다음 문자열 포함 여부를 확인하면 된다.
