인덱스 바꾸기
Algorithm 관련 포스팅
- 최빈값 구하기
- k의 개수 구하기
- String
- 문자열 정렬하기
- 인덱스 바꾸기
- 제곱수 판별하기
- Math
- 배열 회전시키기
- A로 B 만들기
- 잘라서 배열로 저장하기
- Array와 ArrayList
- 저주의 숫자 3
이 글은 프로그래머스의 인덱스 바꾸기의 풀이를 정리한 것입니다.
문제 설명
문자열 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” |
입출력 예 설명
입출력 예 #1
- “hello”의 1번째 인덱스인 “e”와 2번째 인덱스인 “l”을 바꾸면 “hlelo”입니다.
입출력 예 #2
- “I love you”의 3번째 인덱스 “o”와 “ “(공백)을 바꾸면 “I l veoyou”입니다.
나의 풀이(1)
StringBuilder
사용setCharAt(int index, char ch)
:index
의 문자를ch
문자로 변경toString()
:StringBuilder
출력
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
StringBuilder sb = new StringBuilder(my_string);
sb.setCharAt(num1, my_string.charAt(num2));
sb.setCharAt(num2, my_string.charAt(num1));
answer = sb.toString();
return answer;
}
}
나의 풀이(2)
문자열.split()
: 문자열 자르기tmp
변수를 사용해num1
과num2
인덱스의 문자 교환-
String.join(CharSequence delimiter, CharSequence... elements)
: 배열을 문자열로 전환class Solution { public String solution(String my_string, int num1, int num2) { String answer = ""; String[] arr = my_string.split(""); String tmp = arr[num1]; arr[num1] = arr[num2]; arr[num2] = tmp; answer = String.join("", arr); return answer; } }
나의 풀이(3)
-
substring(int beginIndex, int endIndex)
:beginIndex
부터endIndex
-1 까지의 문자를 반환class Solution { public String solution(String my_string, int num1, int num2) { String answer = ""; answer = my_string.substring(0, num1) + my_string.charAt(num2) + my_string.substring(num1 + 1, num2) + my_string.charAt(num1) + my_string.substring(num2 + 1); return answer; } }