Giant Danio Fish
본문 바로가기
알고리즘

프로그래머스 1단계 : 문자열 내림차순으로 배치하기

by 코딩왕자 2022. 11. 17.

프로그래머스 1단계 : 문자열 내림차순으로 배치하기

코딩테스트 연습 > 연습문제 > 문자열 내림차순으로 배치하기


✔ 문제 설명

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

✔ 제한 사항

str은 길이 1 이상인 문자열입니다.

✔ 입출력 예

s return
"Zbcdefg" "gfedcbZ"

✔ 문제풀이

function solution(s) {
    var answer = '';
    
    return s.split('').sort().reverse().join('')
        
    // .sort(function(a,b){return b.localeCompare(a)}).join('')
        
        // .sort(function(a,b){return b.localeCompare(a)}).join('')
    // return answer;
}

✔ 설명

계속 localeCompare사용해서 문자로 출력할 생각만 했네요. 아무생각없이 지우다가 성공했습니다. 찾아보니 sort()를 사용하면 유니코드 순으로 정렬해준다고 하네요. 쉬울뻔했죠?

✔ 다른사람의 풀이

function solution(s) {
    let answer = [[],[]];
    for (let i=0; i < s.length; i++) {
        if(s[i] === s[i].toUpperCase()) {
            answer[1].push(s[i])
        } else {
            answer[0].push(s[i])
        }
    }
    let ans1 = answer[0].sort().reverse().join('');
    let ans2 = answer[1].sort().reverse().join('');
    answer = [ans1, ans2].join('')
    return answer
}

조건문으로 대문자라면 뒤의 배열에 아니라면 앞에배열에 넣고 조인으로 합쳐줬네요. 원래 하려고했던 방식이었는데 이제보니 너무 길군요. 이상입니다.

댓글


광고 준비중입니다