반응형
출처 : programmers.co.kr/learn/courses/30/lessons/12917
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
s return
Zbcdefg | gfedcbZ |
풀이 & 알게된 문자열 메소드
- string str[] = s.split("");
--> 한 글자를 구분자로 하는 str 스트링 배열 선언 - Arrays.sort(str);
--> 한 글자씩 오름차순 정렬 - Collections.reverse( Arrays.asList( str ) ) ; // == Arrays.sort( str, Collections.reverseOrder());
1) str --> 리스트로 변환
2) Collections.reverse 메소드를 통해 내림차순 정렬 == 리스트만 가능한듯. - String.join("",str);
--> str 배열에 있는 각각의 갑들을 ""을 구분자로 스트링에 추가
ex. String.join( ",", 배열 ) ;
"바나나,사과,망고" 처럼 스트링에 추가된다. - equals 메소드
--> 일반적으로 주소 값을 비교하지만,
--> 문자열.equals("") 하면 문자열 값을 비교하게 된다. - String 은 오브젝트 형식
코드
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
String str[] = s.split("");
// 1. 오름차순 정렬
Arrays.sort(str);
/*
Arrays.sort(배열)은 오름차순 정렬로 만들어 주는 것이고,2.
Collections.reverse(Arrays.asList(배열)); 은 일반 배열을 리스트로 변환해준 뒤
reverse 메소드를 활용하여 반전시키는 것이다.
String.join("추가할 문자", 배열); 은 예를 들어 String.join(",",str)이면
"바나나,사과,망고" 이런식으로 ','가 추가되어 원소들이 나열된다.
*/
// 2. 역방향 다시 정렬
Collections.reverse(Arrays.asList(str));
return String.join("",str);
}
}
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스] 시저 암호 [JAVA] (0) | 2020.10.21 |
---|---|
[프로그래머스] 문자열 내 p와 y의 개수 찾기 [Java] (0) | 2020.10.21 |
[프로그래머스] 가운데 글자 가져오기 [JAVA] (0) | 2020.10.21 |
[프로그래머스] 모의고사 [Java] (0) | 2020.10.21 |
[프로그래머스] 완주하지 못한 선수 [Java] (0) | 2020.10.20 |