두 가지로 먼저 풀었는데
첫 번째 풀이는 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('');
}
정말 유익한 글이었습니다.