본문 바로가기
카테고리 없음

항해 99 14일차 TIL( 이진 변환 / 프로그래머스 )

by 순원이 2024. 4. 10.

문제         

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

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};
    }
}