[leetcode, JS] 2697. Lexicographically Smallest Palindrome

mxxn·2024년 6월 8일
0

leetcode

목록 보기
174/198

문제

문제 링크 : Lexicographically Smallest Palindrome

풀이

/**
 * @param {string} s
 * @return {string}
 */
var makeSmallestPalindrome = function(s) {
    let str = s.split('')
    for(let i = s.length - 1, j = 0; i >= Math.ceil(s.length / 2); i--, j++) {
        if(str[i] < str[j]) {
            str[j] = str[i]
        } else {
            str[i] = str[j]
        }
    }
    return str.join('')
};
  1. 문자열 s를 배열로 만들고, 해당 배열 길이의 절반까지만 for문을 돌리고
  2. str의 i번째와 j번째를 비교하여, 더 작은 숫자쪽으로 통일
  • Runtime 148 ms, Memory 59.80 MB

다른 풀이

/**
 * @param {string} s
 * @return {string}
 */
var makeSmallestPalindrome = function(s) {
    s = s.split("") 
    let left =0
    let right = s.length-1
    while(left < right){
        if(s[left] < s[right]){
            s[right] = s[left]
        } else if (s[left] > s[right]) {
            s[left] = s[right]
        }
        
        left++
        right--
    }
return s.join("")
};
  1. 첫번째 풀이와 같은 방식이고 while문을 활용
  • Runtime 151 ms, Memory 59.41 MB
profile
내일도 글쓰기

0개의 댓글