728x90
▶객체(Dictionary) 활용한 간단한 문제가 있어 정리해보고자 합니다.
문제설명
문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어집니다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미입니다. my_string에 queries의 명령을 순서대로 처리한 후의 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 영소문자로만 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
- queries의 원소는 [s, e]의 형태로 0 ≤ s ≤ e < my_string의 길이를 만족합니다.
- 1 ≤ queries의 길이 ≤ 1,000
입출력 예 & 설명
입출력 예 #1
- 예제 1번의 my_string은 "rermgorpsam"이고 주어진 queries를 순서대로 처리하면 다음과 같습니다.
- 따라서 "programmers"를 return 합니다.
나의 풀이
JavaScript의 slice(), splice(), 전개연산자(...), 구조 분해 할당을 사용했습니다.
먼저 기본 for문을 사용해줍니다. 그 안에 구조 분해 할당을 사용하여 queries의 각 요소를 받아줍니다.
그리고 전개 연산자를 사용하여 str 변수에 문자열을 전개하여 배열로 만들어 줍니다.
slice() 메서드를 사용하여 문자열을 역순으로 만들어줄 target을 잘라주고, reverse() 메서드를 사용하여 배열을 역순으로 만들어주고, join()을 사용하여 문자열로 연결해줍니다.
그리고 splice() 메서드를 사용하여 배열의 요소를 변경해줍니다.
배열 s번째부터 e-s+1개를 제거하고 문자열을 역순으로 만들어준 target을 추가해줍니다.
- e-s+1
- [2,3] → 2
- [0,7] → 8
- [5,9] → 5
- [6,10] → 5
즉 queires의 요소대로 값을 제거하고 그 제거한 위치에 역순 문자열을 추가하여 str을 만들어줍니다.
마지막으로 join()을 사용하여 문자열로 연결해주고 반환을 해줍니다.
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 그림 확대 (JavaScript) (0) | 2024.02.19 |
---|---|
[프로그래머스] 무작위로 K개의 수 뽑기 (JavaScript) (1) | 2024.02.18 |
[프로그래머스] 조건 문자열 (JavaScript) (1) | 2024.02.16 |
[프로그래머스] 문자 개수 세기 (JavaScript) (1) | 2024.02.13 |
[프로그래머스] 조건에 맞게 수열 변환하기 2 (JavaScript) (0) | 2024.02.12 |