[알고리즘문제풀기] 대문자와 소문자

250102
이나겸's avatar
Jan 02, 2025
[알고리즘문제풀기] 대문자와 소문자

Q. 문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.

 
 

풀이

💡

StringBuilder

Java에서 문자열을 효율적으로 조작할 수 있도록 제공되는 클래스
String은 불변 객체
  • 문자열을 변경할 때마다 새로운 객체 생성되기 때문에 많아지면 메모리와 성능에 부하가 걸릴 수 있음
StringBuilder는 가변 객체
  • 문자열을 변경할 때 기존 객체 그대로 수정해서 성능이 훨씬 좋음
💡

append()

문자열을 현재 StringBuilder 객체의 끝에 추가
원래의 StringBuilder 객체를 변경하고 새로운 객체를 생성하지 않아서 효율적
  • StringBuilder answer = new StringBuilder()
    • StringBuilder로 두고 문자열을 효율적으로 변환
  • char ch = my_string.charAt()
    • String my_string을 charAt()으로 char(문자)로 변환
  • if (Character.isUpperCase(ch))
    • char로 변환한 my_string(ch)이 대문자일 경우(Character.isUpperCase(ch) = true)
  • answer.append(Character.toLowerCase(ch))
    • Character.toLowerCase()로 대문자를 소문자로 변환
    • append()로 StringBuilder에 변환한 소문자 추가
  • else if (Character.isLowerCase(ch))
    • char로 변환한 my_string(ch)이 소문자일 경우(Character.isLowerCase(ch) = true)
  • answer.append(Character.toUpperCase(ch))
    • Character.toUpperCase()로 소문자를 대문자로 변환
    • append()로 StringBuilder에 변환한 대문자 추가
  • return answer.toString()
    • StringBuilder를 String으로 변환해서 return
class Solution { public String solution(String my_string) { // StringBuilder로 문자열을 효율적으로 변환 StringBuilder answer = new StringBuilder(); for (int i = 0; i < my_string.length(); i++) { char ch = my_string.charAt(i); // 문자가 대문자일 경우 if (Character.isUpperCase(ch)) { // 대문자를 소문자로 변환 answer.append(Character.toLowerCase(ch)); // 문자가 소문자일 경우 } else if (Character.isLowerCase(ch)) { // 소문자를 대문자로 변환 answer.append(Character.toUpperCase(ch)); } } return answer.toString(); // StringBuilder를 String으로 변환 } }
 
Share article

Nakyeom's Study