문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1 번째 시도
- 입력받은 문자열이 1이 될 때까지 while 반복문을 돌린다.
- 입력받은 문자열에 있는 0을 ""으로 바꿔서 text 변수에 저장한다.
- 입력받은 문자열의 길이에서 text의 길이를 빼서 0의 개수를 센다.
- text의 길이를 이진수로 바꿔서 binary 변수에 저장한다.
- 한 번 반복문이 돌 때마다 count를 1씩 늘려준다.
- 반복문이 다 돌고 난 후의 count와 zero를 배열에 담아 return 한다.
진수변환 함수
int decimal = 10;
String binary = Integer.toBinaryString(decimal); // 10진수 -> 2진수
String octal = Integer.toOctalString(decimal); // 10진수 -> 8진수
String hexaDecimal = Integer.toHexString(decimal); // 10진수 -> 16진수
System.out.println("10진수 : " + decimal);
// 10진수 : 10
System.out.println("2진수 : " + binary);
// 2진수 : 1010
System.out.println("8진수 : " + octal);
// 8진수 : 12
System.out.println("16진수 : " + hexaDecimal);
// 16진수 : a
String 글자대체 함수
String hello = "helloA";
hello = hello.replace("A", "");
System.out.println(hello);
// hello
class Solution {
public static int[] solution(String s) {
int zero = 0;
int count = 0;
while (!s.equals("1")) {
count++;
int sl = s.length();
s = s.replace("0", ""); //string 문자열 안에 들어있는 0의 개수가 궁금할 때
zero += sl - s.length(); // string 문자열 안에 들어있는 0의 개수가 궁금할 때
s = Integer.toBinaryString(s.length());
}
return new int[]{count, zero};
}
}