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
- redux-toolkit
- 알고리즘
- 리액트
- react-router
- react-redux
- 프로그래머스
- 항해99
- 매일메일
- sw expert academy
- SW
- json-server
- 테코테코
- createSlice
- Algorithm
- 항해플러스
- Python
- 자바
- Get
- 코딩테스트합격자되기
- programmers
- react
- 이코테
- redux-saga
- axios
- java
- redux
- JavaScript
- maeil-mail
- C++
- useDispatch
Archives
- Today
- Total
Binary Journey
[프로그래머스] 문자열 내림차순으로 배치하기 본문
반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
문제는 이렇다.
** Javascript
javascript 의 sort 와 reverse 함수를 아직 제대로 이해하지 못해서 내 코드는 상대적으로 긴 편이다.
sort 와 reverse 는 기본적으로 문자열을 정렬해준다. 그런데 대소문자까지 가려줄 줄은 생각도 못했다.
다른 사람들의 풀이를 보면 sort 는 기본적으로 대문자-알파벳순>소문자-알파벳순 이렇게 정렬해주고 reverse 는 문자 그대로 뒤집어주는 것 같다.
나의 풀이다.
function solution(s) {
let lowerCaseArr = Array
.from(s)
.filter((str) => str === str.toLowerCase())
.sort().reverse();
let upperCaseArr = Array
.from(s)
.filter((str) => str === str.toUpperCase())
.sort().reverse();
return lowerCaseArr.join("") + upperCaseArr.join("")
}
굳이 대소문자를 나눌 필요가 없었다.
function solution(s) {
return Array.from(s).sort().reverse().join("");
}
이렇게 했어도 그냥 통과다.
추천을 가장 많이 받은 풀이는 split 함수를 이용했다.
function solution(s) {
return s.split("").sort().reverse().join("");
}
** Java (2021-09-07 추가)
내림차순이라 -1을 곱해줬다
import java.util.*;
class Solution {
public String solution(String s) {
String[] strings = s.split("");
Collections.sort(Arrays.asList(strings), new Comparator<String>() {
public int compare(String s1, String s2) {
return s1.compareTo(s2) * -1;
}
});
return String.join("", strings);
}
}
추천 1등 풀이는 StringBuilder를 써줬다. StringBuilder 에는 내장함수로 reverse() 가 있다.
javascript와 이럴 때는 또 굉장히 유사하다.
import java.util.*;
class Solution {
public String solution(String s) {
char[] sol = s.toCharArray();
Arrays.sort(sol);
return new StringBuilder(new String(sol)).reverse().toString();
}
}
** Python (2021-09-07 추가)
def solution(s):
r = sorted(list(s),reverse = True)
return "".join(r)
반응형
'프로그래머스 > level 1' 카테고리의 다른 글
[프로그래머스] 정수 제곱근 판별 (0) | 2021.07.22 |
---|---|
[프로그래머스] 숫자 문자열과 영단어 (0) | 2021.07.21 |
[프로그래머스] 문자열 내 마음대로 정렬하기 (0) | 2021.07.21 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (0) | 2021.07.20 |
[프로그래머스] 직사각형 별찍기 (0) | 2021.07.20 |