1. 조건
2. 내 생각
처음 문제를 확인하고 대충 감은 왔다. 하지만 자바에서 어떻게 이진수로 변환시킬 지 감을 잡지 못했고 한참을 헤메다 이진수로 변환시켜주는 함수가 있다는 것을 알았다.
Integer.toBinaryString(숫자);
이렇게 입력하면 간단하게 숫자를 이진수로 변환시킬 수 있었다
3. 실행 결과
import java.lang.Integer;
class Solution {
public int[] solution(String s) {
int[] answer = new int[2];
int count = 0; // 반복 횟수
int zeroCount = 0; // 0 삭제 횟수
while (!s.equals("1")) { // 이진 변환값이 1이면 반복 중단
int length = s.length(); // 이진법 문자열 길이
s = s.replace("0", ""); // 이진법 문자열에서 0 제거
// 전체 이진 문자 길이에서 0제거한 길이를 뺌
// zeroCount엔 삭제한 0 갯수가 담김
zeroCount += length - s.length();
count ++; // 반복 횟수
s = Integer.toBinaryString(s.length()); // 문자열 길이를 이진법으로 변환
}
answer[0] = count;
answer[1] = zeroCount;
return answer;
}
}
중간중간 시간 복잡도가 높은 것도 있었지만 풀이 개념 자체는 맞은듯 하여 넘어갈 수 있었다.
'자바 알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 - 피보나치 수 (0) | 2023.05.31 |
---|---|
[알고리즘] 프로그래머스 - 구명보트(Greedy) (0) | 2023.05.27 |
[알고리즘] 프로그래머스 - H-Index (0) | 2023.05.19 |
[알고리즘] 프로그래머스 - 부족한 금액 계산하기 (0) | 2023.05.08 |
[알고리즘] 프로그래머스 - 올바른 괄호 (Level 2) (0) | 2023.05.05 |