연습장
47. 문자열 뒤집기 본문
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 |