정확도 테스트 1개에서 실패가 떴다. 동일하게 걸린 시간이 다른 테스트에도 있는 것으로 보아 시간 문제보다는 2번째 항인 용량 문제 같았다.
function solution(n) {
return parseInt(n.toString(3).split('').reverse().join('') * 1, 3);
}
0.1MB를 줄여보자 😄
아래와 같이 풀었더니 정확도 테스트를 모두 통과했다. reverse나 join과 같은 메서드를 체이닝해서 쓰면 용량이 더 커지나보다. (심지어 for문보다 더 크다..)
하지만 이 방법은 테스트 케이스는 모두 통과했지만 점수가 1점이 떴다 😂 다른 사람의 풀이를 참고해보았다.
function solution(n) {
let third = n.toString(3);
let reversedThird = '';
for (let i = third.length - 1; i >= 0; i--) {
reversedThird += third[i];
}
return parseInt(reversedThird, 3);
}
맨 처음 방법을 보니 내가 작성한 첫 풀이에서 split 메서드만 spread 문법으로 바꿔준 풀이였다 😮 실제로 돌려보니 테스트 케이스도 모두 통과했다.
메서드를 쓰는 것보다 자바스크립트의 자체 문법을 쓰는 것이 더 낫다는 교훈(?)을 얻었다. 앞으로는 split 메서드를 쓰기 전에 spread 문법을 먼저 고려해 봐야겠다.
function solution(n) {
return parseInt([...n.toString(3)].reverse().join(""), 3)
}