https://leetcode.com/problems/maximum-odd-binary-number/description/
주어진 이진 문자열 s가 있습니다. 이 문자열에는 최소 하나의 '1'이 포함되어 있습니다. s의 길이를 n이라고 할 때, 길이가 n인 이진 문자열 중에서 홀수인 가장 큰 값을 찾으려고 합니다.
이진 문자열이 홀수이려면 마지막 자리가 '1'이어야 합니다. 이진 문자열의 값을 가능한 가장 큰 값으로 만들기 위해서는 '1'의 개수는 변하지 않게 하되, 최대한 앞쪽에 배치해야 합니다.
Maximum Odd Binary Number를 반환하세요.
입력 형식
- s는 길이 n인 이진 문자열입니다.
- s는 최소 하나의 '1'을 포함하고 있습니다.
출력 형식
- s의 문자들을 재배치하여 만들 수 있는 최대값이면서 홀수인 이진 문자열을 반환합니다.

풀이
class Solution:
def maximumOddBinaryNumber(self, s: str) -> str:
# Step 1: '1'의 개수 세기
count_1 = s.count('1')
# Step 2: '0'의 개수 세기
count_0 = len(s) - count_1
# Step 3: 새로운 문자열 구성
# (count_1 - 1)개의 '1'을 앞에 배치하고, '0'들을 중간에 배치하고, 마지막에 '1'을 배치
result = '1' * (count_1 - 1) + '0' * count_0 + '1'
return result
'Algorithm > 릿코드' 카테고리의 다른 글
99클럽 코테 스터디 29일차 1337. The K Weakest Rows in a Matrix (0) | 2024.06.27 |
---|---|
99클럽 코테 스터디 28일차 2500. Delete Greatest Value in Each Row (0) | 2024.06.27 |
99클럽 코테 스터디 27일차 682. Baseball Game (0) | 2024.06.26 |
99클럽 코테 스터디 26일차 1475. Final Prices With a Special Discount in a Shop (0) | 2024.06.25 |
99클럽 코테 스터디 25일차 933. Number of Recent Calls 최근 요청의 수 (0) | 2024.06.24 |