새소식

Programmers Coding Test/Java

[프로그래머스 120911] Java - 코딩테스트 입문 / 문자열 정렬하기 (2)

  • -

 

 

문자열 정렬하기(2)

 

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/120911

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

1)  문제

영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, 
my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 
solution 함수를 완성해보세요.
제한사항
0 < my_string 길이 < 100

 

 

 

2)  예시

 

 

Result Table
my_string result
"Bcad" "abcd"
"heLLo" "ehllo"
"Python" "hnopty"

 

 

 

입출력 예 #1
"Bcad"를 모두 소문자로 바꾸면 "bcad"이고 이를 알파벳 순으로 정렬하면 "abcd"입니다.


입출력 예 #2
"heLLo"를 모두 소문자로 바꾸면 "hello"이고 이를 알파벳 순으로 정렬하면 "ehllo"입니다.


입출력 예 #3
"Python"를 모두 소문자로 바꾸면 "python"이고 이를 알파벳 순으로 정렬하면 "hnopty"입니다.

 

 

 

 

 

3)  풀이

 

 

1. 클래스 선언을 해줍니다

● class Solution {

클래스명은 대문자로 시작해야하고, 정답이라는 의미로 Solution이라는 단어를 사용하였습니다.

 

 

 

 

2. 문자열 my_string을 매개변수로 하는 solution 메소드를 선언합니다.

solution은 문자열를 반환하므로 데이터타입을 String으로 합니다.

●  public String solution(String my_string) {

 

 

 

3. my_string 문자열의 길이 제한사항을 확인하고, 올바르지 않을 경우 예외를 반환합니다.

●    if(my_string.length() <= 0 || my_string.length() >= 100){
            throw new IllegalArgumentException("제한사항을 확인하세요");
        }
        

 

 

 

4. 문자배열 c를 생성합니다.

c는 my_string 문자열을 toLowerCase() 메소드를 이용해서 소문자로 바꿔주고,

toCharArray() 메소드를 이용해서 문자배열로 바꿔줍니다.

 

 그리고 Arrays.sort() 메소드를 이용하여 c 문자배열을 정렬합니다.

sort 메소드를  이용해서 정렬하면 알파벳순으로 자동정렬되게 됩니다.

 

문자배열인 c를 문자열로 반환해야하기 때문에 return newString(c)로 문자열로 변환하여 반환합니다.

●      char[] c = my_string.toLowerCase().toCharArray();
        Arrays.sort(c);
        return new String(c);
    }
}

 

 

 

 

 

4)  코드

 

import java.util.*;

class Solution {
    public String solution(String my_string) {

        if(my_string.length() <= 0 || my_string.length() >= 100){
            throw new IllegalArgumentException("제한사항을 확인하세요");
        }

        char[] c = my_string.toLowerCase().toCharArray();
        Arrays.sort(c);
        return new String(c);
    }
}

 

 

 

 

 

 

 

5)  느낀점

처음 코드를 작성할 때,

char[] c = my_string.toLowerCase().toCharArray()가 아니라,

 

String lowerString = my_string.toLowerCase();

char[] c = lowerString.toCharArray();

라는 두줄로 만들었었는데, 한줄로 변경이 가능하다는 것을 알아내어 수정할 수 있었습니다.

 

두줄로 표현해도 되지만 스스로 생각하기엔 한줄로 표현하는게 가독성이 더 좋다고 판단하였습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.