프로그래머스 Day - 10

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

1. 문자열의 앞의 n글자

목표 : 문자열의 앞에서부터 n글자 출력

//입력(my_string,  n)
"ProgrammerS123",  11
//출력
"ProgrammerS"
function solution(my_string, n) {
    return my_string.substring(0,n)
}
  • substring()을 사용하여 파라미터에 (0, n)로 전달하여 처음부터 n번째 문자까지 잘라 반환한다.

2. 접두사인지 확인하기

목표 : 조건에 맞게 잘라진 문자열 검사

//입력(my_string,  is_prefix)
"banana",  "ban"
//출력
1
function solution(my_string, is_prefix) {
    let buffer = [];
    for(var i = 0; i<my_string.length; i++) {
        buffer.push(my_string.substring(0,i))
    }
    return buffer.includes(is_prefix) ? 1 : 0;
}
  • 검사할때 쓰일 buffer를 Array형으로 선언하고, my_string의 길이만큼 반복하는 for문을 작성한다.
  • buffer0~i까지 자르는 substring()을 사용하여 push한다.
  • 배열에서 요소가 있는지 검사하는 includes()를 사용하여 판별후에 1 or 0을 출력한다.

3. 문자열 뒤집기

목표 : 특정구간의 문자열 뒤집기

//입력(my_string,  s,  e)
"Progra21Sremm3",  6,  12	
//출력
"ProgrammerS123"
function solution(my_string, s, e) {
    let buffer1 = my_string.substring(s,e+1);
    let buffer2 = buffer1.split("").reverse().join("");
    return my_string.replace(buffer1, buffer2)
}
  • buffer1my_strings부터 e까지 자른 문자열을 저장한다.
  • buffer2buffer1을 뒤집은 결과를 저장한다.
  • my_stirngbuffer1의 문자열을 찾아 buffer2에 저장된 문자열로 replace()를 사용해 바꾼다.

4. 세로 읽기

목표 : 정해진 크기의 표에 저장된 문자들을 특정 열만 지정해 출력

//입력(my_string,  m,  c)
"ihrhbakrfpndopljhygc",  4,  2
//출력
"happy"
function solution(my_string, m, c) {
    let table = [m][c];
    let res = "";
    for(let i = c-1; i<my_string.length; i+=m){
        res += my_string[i]
    }
    return res
}
  • table을 2차원 배열m*c의 크기인 변수와 반환할 문자열을 담을 res를 선언한다.
  • 시작할 인덱스를 -1하여 시작하고, 증감식은 +mi를 증가시킨다.
  • resmy_string[i]를 더한 후 res를 반환한다.

5. QR code

목표 : 문자열을 index를 나눠 붙인 후 출력

//입력(q,  r,  code)
3,  1,  "qjnwezgrpirldywt"
//출력
"jerry"
function solution(q, r, code) {
    let res = "";
    for(let i = 0; i<code.length; i++){
        if(i%q == r){
            res += code[i]
        }
    }
    return res
}
  • 반환할 res를 변수로 선언하고, code의 길이만큼 반복하는 반복문을 작성한다.
  • iq로 나눈 나머지가 r과 같다면, rescode[i]를 추가하여 반환한다.
profile
ΔIM ΩΠ ҒULLSTΔCҜ

0개의 댓글