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