[연습문제] 문자열 내림차순으로 배치하기
2024. 11. 2. 18:00ㆍ입문문제
https://school.programmers.co.kr/learn/courses/30/lessons/12917
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
| s | return |
| "Zbcdefg" | "gfedcbZ" |
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬하는데, 이때 대문자는 소문자보다 작은 것으로 간주하는 문제입니다.
대문자가 소문자보다 작다는 건 사실 큰 의미를 갖지는 않습니다.
기본적으로 문자들도 아스키코드를 전부 숫자로 취급할 수 있는데, 대문자의 시작인 A는 65, 소문자의 시작인 a는 97입니다.
큰 것부터 작은 순으로 정렬한다는 뜻은 내림차순이며, 자연스럽게 z > a > Z > A 구조가 성립되죠.
따라서 단순히 내림차순 정렬만 하면 된다고 볼 수 있습니다.
정답 코드를 작성해보겠습니다.
1. 자바
import java.util.*;
class Solution {
public String solution(String s) {
// 문자열 s를 char 배열로 변환합니다.
char[] c = s.toCharArray();
// char 배열을 오름차순 정렬합니다.
Arrays.sort(c);
// 배열을 문자열로 변환하며 거꾸로 합칩니다.
String answer = new StringBuilder(new String(c)).reverse().toString();
return answer;
}
}
2. 파이썬
def solution(s):
answer = ''.join(sorted(s, reverse=True))
return answer
자바는 뭔가 익숙해지지 않는 느낌입니다. 컨퍼런스를 확인해도 잘 모르겠네요...
'입문문제' 카테고리의 다른 글
| [연습문제] 서울에서 김서방 찾기 (1) | 2024.11.04 |
|---|---|
| [연습문제] 문자열 다루기 기본 (0) | 2024.11.03 |
| [연습문제] 문자열 내 p와 y의 개수 (0) | 2024.11.01 |
| [연습문제] 문자열 내 마음대로 정렬하기 (0) | 2024.10.31 |
| [연습문제] 두 정수 사이의 합 (0) | 2024.10.30 |