거인의 코딩일지
[Lv.2_Java] 이진 변환 반복하기 본문
728x90
class Solution {
public int[] solution(String s) {
int[] answer = new int[2];
while(s.length() > 1) {
int num = 0;
for(int i=0; i<s.length(); i++) {
if(s.charAt(i) == '0') answer[1]++;
else num++;
}
s = Integer.toBinaryString(num);
answer[0]++;
}
return answer;
}
}
이번 문제.... 아까 풀어본 Lv.1 것을 응용해서 풀 수 있었다!
while 문을 사용해서 길이가 1보다 클때 까지 반복해주며, 그 안에 for 문을 사용해서 0의 갯수를 카운트 해주고 answer[1] 값을 추가해주고
없을땐 num값을 플러스 해주고 그 num 값을 이진수로 바꿔주는 Integer.toBinaryString(num); 기능을 사용해서
s값을 대입해주고 answer[0] 에 값을 넣어주고 다시 while 반복문을 돌리는 형식으로 풀어서 해결했다!
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/007.gif)
728x90
'알고리즘테스트 > Programmers' 카테고리의 다른 글
[Lv.0_Java] 배열 조각하기 (0) | 2023.06.01 |
---|---|
[Lv.2_Java] 멀리 뛰기 (0) | 2023.06.01 |
[Lv.1_Java]문자열 p 와 y의 개수 (0) | 2023.06.01 |
[Lv.1_Java] 나누어 떨어지는 숫자 배열 (0) | 2023.06.01 |
[Lv.1_Java] 나머지가 1이되는 수 찾기 (0) | 2023.06.01 |