코딩테스트

[프로그래머스] 문자열 정렬하기 (2)

백설마을꿀단지 2022. 10. 5.
  • 문제 설명
    영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.
  • 제한 사항
    0 < my_string 길이 < 100
  • Input
    "Bcad"
    "heLLo"
    "Python"
  • Output
    "abcd"
    "ehllo"
    "hnopty"

  • 풀기 전 생각
    - toLowerCase 메서드 사용해서 전부 소문자로 바꾸기
    - 바뀐 문자열을 char 배열에 담아 반복문 사용해서 오름차순으로 바꾸기
    - 반복문 사용해서 char배열 문자열로 합치기
  • 내가 작성한 코드
class Solution {
	public String solution(String my_string) {
		String answer = "";
        
        //문자열 전부 소문자로 바꾸기
		answer = my_string.toLowerCase();
        
        //문자열을 char로 나눈 후 알파벳 순서로 정렬하기
		char[] cArr = answer.toCharArray();
		for (int i = 0; i < cArr.length - 1; i++) {
			for (int j = i + 1; j < cArr.length; j++) {
				if (cArr[i] > cArr[j]) {
					char tmp = cArr[j];
					cArr[j] = cArr[i];
					cArr[i] = tmp;
				}
			}
		}
        
        //정렬된 char 배열을 문자열로 합치기
		String str = "";
		for (int i = 0; i < cArr.length; i++) {
			str += cArr[i];
		}

		return str;
	}
}

 

  • Array.sort() 사용하기
    char 배열도 배열이어서 Arrays.sort 메서드 사용이 가능하다. 복잡하게 for문 사용해서 정렬하지말고 sort 메서드 이용하자.
String answer = "";
answer = my_string.toLowerCase();

char[] cArr = answer.toCharArray();
		
Arrays.sort(cArr);
		
String str = "";
for(int i = 0; i < cArr.length; i++) {
	str += cArr[i];
}
		
return str;

댓글