안녕하세요.
오늘은 프로그래머스의 코딩테스트 lv.0 단계 중에 인덱스 바꾸기를 공부해보겠습니다.
언어는 Java로 구현하였습니다.
문제 설명
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
제한 사항
입출력 예
my_string | num1 | num2 | result |
"hello" | 1 | 2 | "hlelo" |
"I love you" | 3 | 6 | "I l veoyou" |
문제 풀이
문자열 my_string의 인덱스 num1과 인덱스 num2의 순서를 변경하기 위해 Char형 배열로 변환한 뒤에 각각의 인덱스를 서로 변경하고 다시 String으로 변환하였습니다.
1
2
3
4
5
6
7
8
9
10
11
12
|
class Solution {
public String solution(String my_string, int num1, int num2) {
char[] arr = my_string.toCharArray();
arr[num1] = my_string.charAt(num2);
arr[num2] = my_string.charAt(num1);
String answer = String.valueOf(arr);
return answer;
}
}
|
추가 풀이
다른 분들의 풀이 중에 자바의 swap 함수를 이용해 구현한 방법이 있어서 공부해보려고 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import java.util.*;
class Solution {
public String solution(String my_string, int num1, int num2) {
List<String> list = new ArrayList<>(List.of(my_string.split("")));
Collections.swap(list, num1, num2);
String answer = String.join("", list);
return answer;
}
}
|
my_string을 List로 변환한 뒤에 swap 함수로 변경하고 다시 join 함수로 변환하였습니다.
사용 함수
마무리 정리
두 가지 방식 결국은 모두 동일한 방식으로 동작하지만 자바의 내장 함수로 구현이 가능했습니다.
이상으로 프로그래머스 lv.0 - 인덱스 바꾸기 공부를 마치겠습니다.
감사합니다.
[프로그래머스] Lv.0 - 약수 구하기 (0) | 2025.05.13 |
---|---|
[프로그래머스] Lv.0 - 분수의 덧셈 (0) | 2025.04.04 |
[프로그래머스] Lv.2 - 올바른 괄호 (0) | 2023.03.03 |
[프로그래머스] Lv.0 - 직각삼각형 출력하기 (0) | 2023.03.02 |
[프로그래머스] Lv.0 - n의 배수 고르기 (0) | 2023.03.01 |
댓글 영역