728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12917
JS
문제
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
str은 길이 1 이상인 문자열입니다.
계획
1. 문자열 배열로 바꾸기 split
2. 알파벳순 정렬 sort
3. 문자열로 합치기 join
참고, 풀이
split() : 문자열을 배열로 변환
let array = string.split(separator);
join() : 배열을 문자열로 변환
let string = array.join(separator);
sort(): 배열 정렬
배열.sort((a, b) => a - b)
정렬이 않됨.
function solution(s) {
let arrS = s.split("");
console.log(1 + arrS); // 1a,c,c,b,b,p,p,a,a
arrS.sort((a, b) => a - b);
console.log(2 + arrS);// 2a,c,c,b,b,p,p,a,a
let answer = arrS.join();
console.log(3 + answer);// 3a,c,c,b,b,p,p,a,a
return answer;
}
console.log(solution("accbbppaa")); // // 1a,c,c,b,b,p,p,a,a
문자배열 정렬은 숫자비교하듯이 쓰면 안됨
배열.sort()
내림차순, 대문자보다 소문자가 먼저 오게 만들어야함
function solution(s) {
let arrS = s.split("");
arrS.sort((a, b) => (a > b ? -1 : a < b ? 1 : 0));
let answer = arrS.join('');
return answer;
}
코드 줄이
답
function solution(s) {
let arrS = s.split("");
arrS.sort((a, b) => (a > b ? -1 : a < b ? 1 : 0));
return arrS.join('');
}
4점.. 개선방안이 있을듯
코드 간략화하기
function solution(s) {
return [...s]
.sort((a, b) => (a < b ? 1 : -1))
.join('');
}
참고
https://ashen99.tistory.com/366
아스키코드 : https://stella0905.tistory.com/58
'내일배움 과제 > 기타 과제' 카테고리의 다른 글
SQL, 알고리즘 문제 풀이 링크 (2) | 2024.12.16 |
---|---|
알고리즘 35번 - 부족한 금액 계산하기 (0) | 2024.12.16 |
알고리즘 33번 - 약수의 개수와 덧셈 (0) | 2024.12.12 |
알고리즘 32번 내적 (0) | 2024.12.11 |
알고리즘 31번 - 수박수박수박수박수박수? (0) | 2024.12.10 |