본문 바로가기
TIL (Today I Learned)

Java에서 대소문자 크기 비교하기 (참고: 프로그래머스 - 자바 - 문자열 내림차순으로 배치하기)

by Won's log 2024. 3. 25.

프로그래머스에서 문제를 풀다가 자바에서는 대소문자 비교도를 알고 있으면 좋을 것 같아 기록을 남긴다.

참고한 문제 : 문자열 내림차순으로 배치하기

 

프로그래머스

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

programmers.co.kr

문제와 예시는 다음과 같다.

 

결론부터 말하면 

비교도는 대문자<소문자, A<Z<a<b 이다.

ABCDE...<abcde... 라는 말이다.

 

좀 의외인긴 했다. 대문자가 더 큰 가치를 가지고 있을 것이라고 생각했는데, 이렇게 또 하나 배우고 간다.

 

무튼! 문제를 마무리 짓자면,

해당 문제의 설계는 다음과 같다.

1. 문자열 s를 arrS 배열에 저장

2. 저장된 arrS를 오름차순으로 변환

3. 내림차순으로 바꾸기 위해 for문에서 i-- 사용

3-1. 그 값들을 또 다른 arrAnswer에 저장

3-2. String으로 변환

 

완성 코드

import java.util.Arrays;

class Solution {
    public String solution(String s) {
        
        // 소문자>대문자, A<Z<a<b
        String answer = "";
        char[] arrS = s.toCharArray();
        char[] arrAnswer = arrS.clone();
        
        Arrays.sort(arrS);
        
        for (int i=arrS.length-1, j=0; i>=0; i--, j++) {
            arrAnswer[j] = arrS[i];
        }
        
        answer = String.valueOf(arrAnswer);
        
        return answer;
    }
}

 

*위 방법 외에도 다양한 방법이 있으니 참고만 해주세요 :)

*잘못된 정보가 있다면 댓글로 남겨주시면 더 큰 도움이 될 것 같습니다 :)