연습장

47. 문자열 뒤집기 본문

프로그래머스/0단계

47. 문자열 뒤집기

js0616 2023. 7. 10. 20:35

Q. 문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요.


my_string 으로 주어진 문자열의 s 번째 부터 e 번째 인덱스까지 존재하는 문자열의 위치를 바꾸는 (뒤집는) 문제이다. 

ex) 뒤집기 : 12345 -> 54321 

 

 

 

 

코딩을 할때

절차식, 객체식, 함수식  .. .? 방법이 있으며

요즘 함수식으로 푸는게 유행이라는 말을 들어서

함수식으로 한번 풀어봤다. 

 

먼저 rev 라는 함수를 정의하고 

 

const rev = (AA) => {
    let revStr = ''
        for(let i = AA.length-1; i >= 0 ; i--) {
            revStr += AA[i]
        }
    return revStr
}

 

// 문자열 입력 받아서 -> 뒤집어서 반환 하는 함수

for 문을 이용하여 배열의 맨 뒤부터 하나씩 가져와서 문자열로 연결하였다. 

 

문자열을 크게 3구간으로 나눌 수 있다.

뒤집기 전 + 뒤집기 + 뒤집은 후


function solution(my_string, s, e) {
    var answer = '';  
    answer = my_string.slice(0,s) + rev(my_string.slice(s,e+1)) + my_string.slice(e+1,)
    return answer;
}

 

다음과 같이 적용하면 된다. slice 의 범위에 주의해야 한다. 

 

물론 reverse 함수를 이용 할 수도 있다. 

 

 my_string.slice(s,e+1).split('').reverse().join('')

 

문자열 -> 배열 -> 뒤집고 -> 문자열로

 

만들어져있는 함수를 잘 쓰는것도 좋지만if 문 , for 문 , 인덱스 만을 이용해서 풀어보는게 더 재밌는거같다. 

'프로그래머스 > 0단계' 카테고리의 다른 글

49. 문자개수 세기  (0) 2023.07.10
48. 세로 읽기  (0) 2023.07.10
46. 문자열의 앞의 n글자  (0) 2023.07.10
45. 접미사인지 확인하기  (0) 2023.06.25
44. 접미사 배열  (0) 2023.06.25