| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 프론트엔드
- 공식문서
- 코딩테스트
- styled-components
- 모던 딥 다이브 자바스크립트
- 알고리즘
- 이벤트
- 비전공자
- Github
- JavaScript
- 모던 자바스크립트 딥 다이브
- 자바스크립트
- GIT
- 개발자취업부트캠프
- 자료구조
- 패스트캠퍼스
- useRef
- 메가바이트스쿨
- MegabyteSchool
- 입문
- 리액트
- useMemo
- TypeScript
- 내일배움카드
- 개발 공부
- react
- 프로그래머스
- CSS
- 국비지원교육
- next.js
Archives
- Today
- Total
개발 기록 남기기✍️
[프로그래머스] 인덱스 바꾸기 본문
🗒️ 문제 설명
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
⚠️ 제한 사항
- 1 < my_string의 길이 < 100
- 0 ≤ num1, num2 < my_string의 길이
- my_string은 소문자로 이루어져 있습니다.
- num1 ≠ num2
👀 입출력 예
| my_string | num1 | num2 | result |
| "hello" | 1 | 2 | "hlelo" |
| "I love you" | 3 | 6 | "I l veoyou" |
❇️ 나의 풀이
- 먼저 문자열을 전개한다.
- 인덱스가 num1인 값을 배열에서 splice(num1,1)로 잘라낸다.
- 이미 num1에 해당하는 문자를 잘라낸 상태인 배열에서 인덱스가 num2인 값을 배열에서 splice(num2-1,1)로 잘라낸다.
- splice로 num1 인덱스에 잘라냈던 num2 값을 붙여넣고, num2 인덱스에 잘라냈던 num1 값을 붙여넣는다.
- 배열을 .join('')로 다시 String으로 만들어준다.
function solution(my_string, num1, num2) {
var arr = [...my_string];
var spliceResult1 = arr.splice(num1,1);
var spliceResult2 = arr.splice(num2-1,1);
arr.splice(num1,0,...spliceResult2);
arr.splice(num2,0,...spliceResult1);
return arr.join('');
}
✍️ 리뷰
- 더 쉬운 방법이 있을 것 같지만, 일단 스스로 문제를 풀 수 있어야 한다는 생각에 긴 코드를 만들어냈다.
- 근데 생각해보니 splice로 일일이 붙여넣기보다.. 변수에 num1, num2 값을 각각 할당하고, 해당 배열 인덱스에 재할당하면 되지 않나?
- 이런 바보같은...
function solution(my_string, num1, num2) {
let arr = my_string.split("");
[arr[num1], arr[num2]] = [arr[num2], arr[num1]];
return arr.join("");
}
✔️ 제발 빨리 풀 생각하지말고.. 심지어 이거 완전 기초 개념이잖아!! 정신 똑바로 차리고 문제 보자 제발!!
'코딩 테스트 연습' 카테고리의 다른 글
| [프로그래머스] 직각삼각형 출력하기 (0) | 2022.12.28 |
|---|---|
| [프로그래머스] 피자 나눠 먹기 (2) (0) | 2022.12.26 |
| [프로그래머스] 숨어있는 숫자의 덧셈 (1) (0) | 2022.12.23 |
| [프로그래머스] 제곱수 판별하기 (0) | 2022.12.23 |
| [프로그래머스] 순서쌍의 개수 (0) | 2022.12.23 |