var makeSmallestPalindrome = function(s) {
const arr = [...s]
for(let i=0, j=arr.length-1; i<j; i++, j--) {
if(arr[i].charCodeAt() < arr[j].charCodeAt()) {
arr[j] = arr[i];
} else {
arr[i] = arr[j]
}
}
return arr.join('')
};
Two Pointers
를 이용하여 쉽게 해결하였다.
먼저 변경이 가능하다록 하기 위하여 문자열s
를 배열로 변환하였다.
그리고 두 포인터i
와j
를 설정하였다.i
는 첫 번째 인덱스부터 접근하는 포인터이고j
는 마지막 인덱스부터 거꾸로 접근하는 포인터이다.
charCodeAt 메소드를 사용하여 두 문자열의 알파벳 순서를 비교한 후 상황에 맞게 바꿔주면 된다.