코딩 테스트/99클럽
[99클럽] 코테 스터디 39일차 TIL - 그리디(Greedy) (2864. Maximum Odd Binary Number)
토자맨
2024. 6. 28. 20:32
문제
https://leetcode.com/problems/maximum-odd-binary-number/
- s는 이진수이다.(ex. 0101, 101 ...)
- s를 최대 홀수 이진수로 변환하라
예시
제약조건
풀이 방법
코드
시도1 - O
- s에 1과 0의 개수를 구한다.
- 1을
oneCnt 개수-1
만큼 앞에 붙인다 - 0을
zeroCnt 개수
만큼 뒤에 붙인다 - 남은 1을 마지막에 붙여서 홀수로 만든다.
/** 풀이 방법
s에 1과 0의 개수를 구한다.
1의 개수-1만큼 앞에 붙이고 0 개수만큼 뒤에 붙이고 나머지 1을 마지막에 하나 붙인다.*/
import java.util.StringTokenizer;
class Solution {
public String maximumOddBinaryNumber(String s) {
int oneCnt = 0;
int zeroCnt = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '1') {
oneCnt++;
} else {
zeroCnt++;
}
}
StringBuilder sb = new StringBuilder();
for (int i = 1; i < oneCnt; i++)
sb.append("1");
for (int i = 0; i < zeroCnt; i++)
sb.append("0");
sb.append("1");
return sb.toString();
}
}
오늘 회고
99클럽 마지막 날이다.
39일간 빠진 날도 있지만 거의 빠지지 않고 잘 해냈다.
미들러 문제가 생각보다 어려워서 중간에 비기너로 바꾸긴 했지만 그래도 꾸준히 했다는 것에 의미를 둔다.
남은 방학 기간에도 매일 꾸준히 알고리즘 풀고 졸작, 정처기, 클라우드, 스프링 다 열심히 하자 !!
앞으로도 매 순간에 최선을 다하자