[18/06/30] 프로그래머스- Level 1 문자열 내림차순으로 배치하기
2018. 7. 1. 17:43
문자열 내림차순으로 배치하기
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
● str은 길이 1 이상인 문자열입니다.
입출력 예
s | return |
---|---|
Zbcdefg | gfedcbZ |
import java.util.ArrayList; import java.util.Collections; import java.util.List; class Solution { public String solution(String s) { List<String> list = new ArrayList<>(); for (int i = 0; i < s.length(); i++) { list.add(Character.toString(s.charAt(i))); } Collections.sort(list); Collections.reverse(list); String answer = ""; for (int i = 0; i < s.length(); i++) { answer += list.get(i); }
return answer; } }
알고리즘 자체는 크게 어렵지 않았다. 제일 만만하고 자신있는 List로 s의 charAt을 이용하여 add시킨다. 그후 오름차순 sort를 한 다음 reverse로 뒤집는다.
여기까진 했는데 문자열을 붙이는게 문제라서 concat을 썼다가 실패한 후 +=를 이용하니 바로 됐다.....
신기했닿ㅎㅎㅎ 지금까지 몇문제 안풀어봤지만 확실히 정렬과 문자열 다루는 메소드 등이 중요하다고 느껴진다.
배운점
reverse정렬과 += 연산자를 이용한 문자열 붙이기. Char타입과 String타입의 형변환 중요성
공부할 것
String 관련 메소드 & StringBuilder & 문자열 붙이는 메소드(concat, append 등등)
'Get IT Note > 알고리즘' 카테고리의 다른 글
[18/07/01] 프로그래머스- Level 1 같은 숫자는 싫어 (0) | 2018.07.01 |
---|---|
[18/07/01] 프로그래머스- Level 1 가운데 글자 가져오기 (0) | 2018.07.01 |
[18/06/29] 프로그래머스- Level 1 문자열 내 마음대로 정렬하기 (0) | 2018.06.29 |
[18/06/29] 프로그래머스- Level 1 나누어 떨어지는 숫자 배열 (0) | 2018.06.29 |
[18/06/28] 프로그래머스-Level 1 두 정수 사이의 합 (0) | 2018.06.28 |