[leetcode, JS] 2864. Maximum Odd Binary Number

mxxn·2024년 6월 17일
0

leetcode

목록 보기
183/198

문제

문제 링크 : Maximum Odd Binary Number

풀이

/**
 * @param {string} s
 * @return {string}
 */
var maximumOddBinaryNumber = function(s) {
    let oneCnt = 0
    let zeroCnt = 0
    for(let el of s) {
        if(el === '1') {
            oneCnt++
        }else {
            zeroCnt++
        }
    }

    return oneCnt > 1 ? '1'.repeat(oneCnt-1)+'0'.repeat(zeroCnt)+'1' : '0'.repeat(zeroCnt)+'1'
};
  1. 1과 0의 숫자를 세고
  2. 1의 개수가 2개 이상이면 1을 (개수-1)개 만큼 반복+0을 개수만큼 반복+'1'
  3. 1의 개수가 1개면 0의 개수를 반복+'1'
  • Runtime 63 ms, Memory 52.61 MB

다른 풀이

/**
 * @param {string} s
 * @return {string}
 */
var maximumOddBinaryNumber = function(s) {
    s = [...s].sort((a,b) => b-a)
    s.push(s.shift())

    return s.join('')
};
  1. 배열 활용한 풀이
  • Runtime 79 ms, Memory 52.45 MB
profile
내일도 글쓰기

0개의 댓글