[프로그래머스] Lv.0 인덱스 바꾸기 (문자열의 특정 위치의 문자 변경)

[프로그래머스] Lv.0 인덱스 바꾸기 (문자열의 특정 위치의 문자 변경)
muaga's avatar
May 22, 2024
[프로그래머스] Lv.0 인덱스 바꾸기 (문자열의 특정 위치의 문자 변경)
 
notion image
notion image
 


◽ StringBuilter

class Solution { public String solution(String my_string, int num1, int num2) { char num1ch = my_string.charAt(num1); char num2ch = my_string.charAt(num2); StringBuilder sb = new StringBuilder(); sb.append(my_string); sb.setCharAt(num1, num2ch); sb.setCharAt(num2, num1ch); String answer = sb.toString(); return answer; } }
 

풀이


◽과정 1 👉 실패

class Solution { public String solution(String my_string, int num1, int num2) { char num1ch = my_string.charAt(num1); char num2ch = my_string.charAt(num2); String answer = my_string .replace(num1ch, num2ch) // hlllo .replace(num2ch, num1ch); // ⚠️ heeeo return answer; } }
변경할 문자를 char로 깊은 복사 후, replace( ) 를 사용하여 문자를 변경하도록 시도했다.
하지만 replace( )는 문자열 내의 모든 특정 문자를 변경하고, 괄호 속 입력 값은 바꿀 문자의 위치가 아닌 바꿀 문자를 지정하는 것이기 때문에 원하는 결과가 나오지 않았다.
 

◽ 과정 2 👉 성공

 

다른 사람의 풀이


◽ char[ ]

class Solution { public String solution(String my_string, int num1, int num2) { String answer = ""; char[] ch = my_string.toCharArray(); ch[num1] = my_string.charAt(num2); ch[num2] = my_string.charAt(num1); answer = String.valueOf(ch); return answer; } }
Share article

muaga's Hub