문자열 내림차순으로 배치하기

Sheryl Yun·2023년 7월 19일
0

문제 링크

처음 풀이

두 가지로 먼저 풀었는데
첫 번째 풀이는 join에서 계속 걸려서 답이 안 나왔다.

function solution(s) {
    return [...s].reverse().join();
}

두 번째 풀이는 문제 내 테스트는 통과했지만 제출 시의 정확도 케이스는 하나도 통과되지 않았다.

function solution(s) {
    let answer = '';
    
    let lower = [...s].filter((t) => t === t.toLowerCase());
    let upper = [...s].filter((t) => t === t.toUpperCase());
    
    for (let x of lower.reverse()) answer += x;    
    for (let x of upper.reverse()) answer += x;
    
    return answer;
}

새로운 풀이

다른 풀이를 보고서 첫 번째 join에 무엇이 문제였는지 알았다. (일어나자마자 코딩을 하면 이런 일이..)
그런데 어차피 sort를 빼먹어서 답이 안 나왔을 것 같다.

문제의 테스트 케이스에선 sort를 하지 않아도 될 것처럼 보였는데 sort의 유무 차이로 정확도 케이스 통과가 0% 100%가 되었다.

다시 문제를 보니 '문자를 큰것부터 작은 순으로 정렬해' 라는 문구가 보였다.

문제 테케에선 인풋 문자열이 이미 정렬이 되어 있었지만 제출 시의 테케에선 정렬이 하나도 안 돼 있었던 것이다.
코딩할 땐 정신 차리고 하기..

function solution(s) {
    return [...s].sort().reverse().join('');
}
profile
영어강사, 프론트엔드 개발자를 거쳐 데이터 분석가를 준비하고 있습니다 ─ 데이터분석 블로그: https://cherylog.tistory.com/

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

정말 유익한 글이었습니다.

답글 달기