문제
문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요.
내 코드
매우 단순하게 풀었다.
먼저 char배열로 만들고 바꿀부분을 복사한 새로운 배열로 만들었다.
단순하게 해당 위치를 역순으로 넣어주었다.
public String solution(String my_string, int s, int e) {
String answer = "";
char[] oldStr = my_string.toCharArray();
char[] newStr = new char[e - s + 1];
System.arraycopy(oldStr, s, newStr, 0, e - s + 1);
for (int i = s, j = newStr.length; i <= e; i++, j--) {
oldStr[i] = newStr[j - 1];
}
answer = new String(oldStr);
return answer;
}다른사람 코드
알고있지만 항상 까먹는 코드이다.
StringBuilder의 reverse()메소드를 사용하면 문자열이 뒤집힌다!!
잊지말자 복잡한 문제는 이렇게 푸는게 훨 씬 쉬울 것이다.
public String solution(String my_string, int s, int e) {
String answer = "";
String str = my_string.substring(s, e+1);
System.out.println(str);
StringBuilder sb = new StringBuilder(str);
sb.reverse();
str = sb.toString();
System.out.println(str);
StringBuilder strn = new StringBuilder(my_string);
for(int i=s;i<=e;i++){
strn.setCharAt(i, sb.charAt(i-s));
}
return String.valueOf(strn);
}'문제 풀이 > 프로그래머스' 카테고리의 다른 글
| 프로그래머스 lv0 흉부외과 또는 일반외과 의사 목록 출력하기 (1) | 2023.09.07 |
|---|---|
| 프로그래머스 lv0 SQL - IF NULL (0) | 2023.09.06 |
| 프로그래머스 lv1 SQL 나이 정보가 없는 회원 수 구하기 (0) | 2023.08.24 |
| 프로그래머스 lv0 이차원배열대각선순회하기 (0) | 2023.08.23 |
| 프로그래머스 lv0 l로 만들기 (0) | 2023.08.14 |