오늘의 공부 키워드
2864 Maximim odd Binary Number
2864 Maximim odd Binary Number
문제 설명
이진 문자열 s가 주어졌을 때, 이 문자열을 재배열하여 만들 수 있는 가장 큰 홀수 이진 숫자를 구하는 것입니다. 홀수 이진 숫자는 마지막 자리가 '1'이어야 합니다. 주어진 문자열에는 최소한 하나의 '1'이 포함되어 있습니다.
예제
- 입력: s = "010"
- 출력: "001"
- 설명: '1'이 하나밖에 없으므로 마지막 자리에 위치시킵니다. 따라서 답은 "001"입니다.
- 입력: s = "0101"
- 출력: "1001"
- 설명: '1' 중 하나는 마지막에 배치하고, 나머지 숫자들을 앞에 배치하여 가장 큰 숫자를 만듭니다. 따라서 답은 "1001"입니다.
문제 해결 방법
이 문제를 해결하기 위한 단계는 다음과 같습니다:
- 주어진 문자열 s에서 '1'의 개수를 셉니다.
- 마지막 자리에 '1'을 하나 배치합니다.
- 나머지 '1'과 '0'을 모두 앞에 배치하여 가장 큰 숫자를 만듭니다
파이썬 코드 구현
def maximumOddBinaryNumber(s: str) -> str:
count_1 = s.count('1')
count_0 = len(s) - count_1
# '1' 하나는 마지막에 배치
result = '1' * (count_1 - 1) + '0' * count_0 + '1'
return result
# 예제 입력을 테스트해보세요.
print(maximumOddBinaryNumber("010")) # 출력: "001"
print(maximumOddBinaryNumber("0101")) # 출력: "1001"
코드 설명
- count_1 = s.count('1')는 문자열 s에서 '1'의 개수를 셉니다.
- count_0 = len(s) - count_1는 문자열 s에서 '0'의 개수를 셉니다.
- '1' * (count_1 - 1) + '0' * count_0 + '1'는 마지막 자리에 '1'을 배치하고, 나머지 '1'과 '0'을 앞에 배치하여 가장 큰 숫자를 만듭니다.
이와 같은 방법으로 주어진 이진 문자열을 재배열하여 가장 큰 홀수 이진 숫자를 만들 수 있습니다. 이 문제는 간단하지만, 기본적인 이진수의 특성과 문자열 처리 방법을 이해하는 데 도움이 됩니다.
마무리
이 글에서는 이진 문자열을 재배열하여 최대 홀수 이진 숫자를 만드는 문제를 해결하는 방법을 설명했습니다. 파이썬 코드를 통해 문제 해결 과정을 자세히 설명하였으니, 비슷한 문제를 해결할 때 도움이 되길 바랍니다.
여러분도 직접 코드를 작성해 보고, 다양한 입력값으로 테스트해 보세요. 이를 통해 문제 해결 능력을 키울 수 있을 것입니다. 감사합니다!
'python' 카테고리의 다른 글
99클럽 코테 스터디_4기 2일차 TIL (1) | 2024.10.29 |
---|---|
99클럽 코테 스터디_4기 1일차 TIL (0) | 2024.10.28 |
99클럽 코테 스터디 30일차 TIL (0) | 2024.06.27 |
99클럽 코테 스터디 29일차 TIL (0) | 2024.06.27 |
99클럽 코테 스터디 28일차 TIL (0) | 2024.06.25 |