Lv. 1 - 문자열 내림차순으로 배치하기 풀이과정
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
| s | return |
| “Zbcdefg” | “gfedcbZ” |
문제 풀이
const solution = (s) => s.split("").sort().reverse().join("");
solution("Zbcdefg");
함수 선언
- 화살표 함수를 사용하여
s를 매개변수로 받는다.
풀이
- 먼저 문제 설명의 핵심 사항들만 정리해보았다.
-
s에 나타나는 문자를 큰것부터 작은순으로 정렬 -
s는 영문 대소문자로만 구성되어있음 - 대문자는 소문자보다 작은것으로 간주함
-
- 핵심 사항들에 관한 메서드 및 함수를 고민해보았음
- 먼저 문자열을 배열로 만들어주기 위한 split, 리턴할 때 문자열로 감싸줄 join
- 정렬해주기 위한 sort
- 대문자,소문자 크기 reverse (역순)
- 이후 하나씩 적용을 해보았다.
- 먼저 배열로 감싸줌
s.split("") - 이후 정렬 + 역순
.sort().reverse() - 리턴해줄 때 문자열로 해줌
.join("")
- 먼저 배열로 감싸줌
- 한 줄 코드 완성!
결과 반환
-
s = Zbcdefg을 대입하면 “gfedcbZ” 을 리턴함 -
s = RarrIt을 대입하면 “trraRI”을 리턴함
다른 사람의 풀이 참고
메서드 체이닝으로 한 줄 코드 완성! 여러 메서드와 함수를 공부한 노력의 결과인 것 같다! 물론 723명이나 나와 같은 풀이 방법으로 문제를 풀었지만 개인적으로 정말 만족 오히려 전 문제였던 약수의 개수와 덧셈이 더 어려웠던 것 같다.. 메서드 체이닝도 좋지만 메서드 체이닝을 모르는 사람도 있기에 if문을 사용한 문제 풀이 방법이 다른 방면으로 좋아보이기도 하다.
// [10명] 총합 - if문을 사용한 풀이과정
function solution(s) {
return s
.split("")
.sort((a, b) => {
if (a > b) return -1;
if (b > a) return 1;
return 0;
})
.join("");
}
링크
- 문제 링크: 문제 링크
- Git: rarrit github
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges