프로그래머스 Day - 9

ᵁ-ᴷᴺᴼᵂᴺ·2023년 6월 1일
post-thumbnail

1. 배열 만들기 5

목표 : 배열에 있는 특정구간의 문자열을 잘라내 검사후 반환

//입력(intStrs, k, s, l)
["0123456789","9876543210","9999999999999"], 50000, 5, 5
//출력
[56789, 99999]
function solution(intStrs, k, s, l) {
    let res = [];
    for (let x of intStrs){
        res.push(Number(x.substring(s, s+l)))
    }
    return res.filter(n => n>k)
}

intStrs에 담긴 문자열들을 s부터 l까지 잘라내 k와 비교해서 배열에 담아 반환한다.

  • 반환할 배열인 res를 선언하고, intStrs의 길이만큼 반복한다.
  • xintStrs의 값들이 순차적으로 들어가고, 해당 문자열을 substring()으로 문자열을 잘라 숫자로 변환한 후 반환한다.

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

목표 : 여러 문자열을 주어진 구간에 따라 자르고, 합쳐 반환

//입력(my_strings,  parts)
["progressive", "hamburger", "hammer", "ahocorasick"],  [[0, 4], [1, 2], [3, 5], [7, 7]]
//출력
"programmers"
function solution(my_strings, parts) {
    let buffer = []
    for (let i = 0; i<my_strings.length; i++){
        let [s, e] = parts[i];
        buffer.push(my_strings[i].substring(s,e+1))
    }
    return buffer.join("")
}
  • 문자열로 변환하여 출력할 배열의 이름을 buffer로 선언한다
  • 0부터 my_strings의 길이만큼 반복한다.
  • part[i]의 요소들을 [s, e]로 선언하고, my_stirngs[i]의 문자열을 s~ e+1까지 자른다.
  • 자른 문자열을 bufferpush하고, join을 사용하여 이어붙인 후 반환한다.

3. 문자열의 뒤의 n글자

목표 : 문자열의 뒤에서부터 n까지의 글자를 반환

//입력(my_string,  n)
"ProgrammerS123",  11
//출력
"grammerS123"
function solution(my_string, n) {
    return my_string.substring(my_string.length-n, my_string.length)
}
  • my_string을 사용하여 my_string의 길이에서 n을 뺀 만큼부터 끝까지 잘라 반환한다.

4. 접미사 배열

목표 : 특정 인덱스부터 시작하는 문자열을 배열로 반환

//입력
"banana"
//출력
["a", "ana", "anana", "banana", "na", "nana"]
function solution(my_string) {
    let res = [];
    for (let i = 0; i<my_string.length; i++){
        res.push(my_string.slice(i, my_string.length))
    }
    return res.sort()
}
  • res를 배열로 선언하고 0부터 my_string의 길이만큼 반복한다.
  • res의 배열에 i부터 끝까지 자른 문자열을 push해준다.
  • .sort()로 정렬한 후 반환한다.

5. 접미사인지 확인하기

목표 : 주어진 문자열이 접미사인지 판별

//입력 (my_string,  is_suffix)
"banana",  "ana"
//출력
1
function solution(my_string, is_suffix) {
    let res = [];
    for (let i = 0; i<my_string.length; i++){
        res.push(my_string.slice(i, my_string.length))
    }
    return res.includes(is_suffix) ? 1 : 0
}
  • 주어진 문자열 my_string을 위 4번과 같이 잘라 배열에 넣는 과정까진 똑같다.
  • 반환할 때 res라는 배열에 요소의 존재를 확인하는 includes를 사용하여 true인지 false인지 확인한다.
  • 3항 연산자를 통하여 true1을, false0을 반환한다.
profile
ΔIM ΩΠ ҒULLSTΔCҜ

0개의 댓글