Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 에러
- 인강리뷰
- Oracle
- Singleton
- math
- 디자인패턴
- spring
- 인프런
- 알고리즘
- 인코딩
- 회고
- 오라클
- javascript
- Eclipse
- 우아한테크코스
- 독서
- 프로그래머스
- Head First Design Pattern
- JPA
- study
- 매핑
- 람다
- 독서리뷰
- Design Pattern
- 자바
- 공부
- 카카오톡1차
- 후기
- 이펙티브자바
- Java
Archives
- Today
- Total
Lee's Grow up
[자바/알고리즘] 프로그래머스 문자열 내림차순으로 배치하기 본문
반응형
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
S | return |
"Zbcdefg" | "gfedcbZ" |
람다를 활용한 풀이
최근 람다식을 공부하고 있어서 시간날 때 기존의 풀이를 람다로 변경해보는 연습을 진행중입니다.
기존 아래의 코드를 람다식으로 풀어본 결과입니다.
class Solution {
public String solution(String s) {
return Stream.of(s.split(""))
.sorted(Collections.reverseOrder())
.collect(Collectors.joining());
}
}
나의 풀이
class Solution {
public String solution(String s) {
char[] cArr = s.toCharArray();
for (int i = 1; i < cArr.length; i++) {
for (int j = 0; j < cArr.length; j++) {
if(cArr[i]>cArr[j]) {
char temp = cArr[j];
cArr[j] = cArr[i];
cArr[i] = temp;
i--;
break;
}
}
}
return new String(cArr);
}
}
풀이 설명
기본적으로 다른사람들은 Arrays.sort()
를 사용해 정렬 후, 리버스 하는 방식으로 풀이를 접근했습니다.
저는 이와 비슷한 문제에서 자주 사용했기 때문에 정렬 자체를 구현해보는게 목적이였습니다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[자바/알고리즘] 프로그래머스 탑 (0) | 2020.01.02 |
---|---|
[자바/알고리즘] 프로그래머스 주식가격 (0) | 2019.12.16 |
[자바/알고리즘] 프로그래머스 문자열 내 p와 y의 개수 (0) | 2019.12.10 |
[자바/알고리즘] 프로그래머스 두 정수 사이의 합 (0) | 2019.12.10 |
[자바/알고리즘] 프로그래머스 자릿수 더하기 (0) | 2019.11.28 |
Comments