29일차 - 알고리즘 코드카타

2024. 8. 23. 07:52·Java & Spring/코딩테스트

- 회고

77. 이진 변환 반복하기 : https://school.programmers.co.kr/learn/courses/30/lessons/70129

 

프로그래머스

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

programmers.co.kr

- 풀이 과정

  1. 회차를 위한 변수 i, 제거된 0의 개수를 카운팅하기위한 변수 remove, 최초 s문자열의 길이 변수 n 선언
  2. while문을 통해 s가 "1"이 될 때 까지 반복
  3. s.replaceAll()을 통해 0제거
  4. 최초 s의 길이인 n에서 변경된 문자열 s의 길이를 뺀(이번 회차 제거된 0의 개수) 값을 remove에 더해준다.
  5. 숫자를 이진법으로 바꿔주는 toBinary()메서드 구현
  6. 변경된 문자열의 길이를 이진법으로 변경한다.
  7. 변경된 문자열을 n에 대입한다.
  8. i를 증가시켜 다음 회차를 진행한다.

- 회고 

  1. 숫자를 이진법 문자열로 변환해주는 Integer.toBinaryString()이란 메서드가 존재했다.
  2. zereRemove변수와, 마지막 if문은 필요가없다.
class Solution {
    public int[] solution(String s) {
        int[] answer = new int[2];
        int n = s.length();
        int remove = 0;
        int i = 0;
        while (!s.equals("1")){
            s = s.replaceAll("0","");
            int zeroRemove = n - s.length();
            remove += zeroRemove;
            s = toBinary(s.length());
            n = s.length();
            i++;
        }
        answer[0] = i;
        answer[1] = remove;
        return answer;
    }

    public static String toBinary(int n){
        StringBuilder sb = new StringBuilder();
        while(n > 1){
            if(n % 2 == 0){
                sb.append(0);
            }else{
                sb.append(1);
            }
            n /= 2;
        }
        if(n == 1){
            sb.append(1);
         }
        return sb.reverse().toString();
    }
}

 

 

 

- 진행

일자 완료 번호
24.07.16 ~ 24.07.31 1~63
24.08.01 ~ 24.08.20 64~75
24.08.21 76
24.08.23 77
   
   
   
   
   
   
   
   

'Java & Spring > 코딩테스트' 카테고리의 다른 글

33일차 - 알고리즘 코드카타  (0) 2024.08.30
31일차 - 알고리즘 코드카타  (0) 2024.08.27
27일차 - 알고리즘 코드카타  (0) 2024.08.21
26일차 - SQL 코드카타  (1) 2024.08.20
26일차 - 알고리즘 코드카타  (1) 2024.08.20
'Java & Spring/코딩테스트' 카테고리의 다른 글
  • 33일차 - 알고리즘 코드카타
  • 31일차 - 알고리즘 코드카타
  • 27일차 - 알고리즘 코드카타
  • 26일차 - SQL 코드카타
DJ.Kang
DJ.Kang
백엔드 개발 기록 블로그
  • DJ.Kang
    DJ Hello World
    DJ.Kang
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 이론공부
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • DB
      • AWS
      • CI-CD
      • 웹
      • git & github
      • 구인공고분석
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java 멤버
    java
    프로그래머스 java 기초트레이닝
    Java 생성자
    java 세수의합
    java 메서드
    자료구조
    프로그래머스 java 기초 트레이닝
    java arrays.copyofrnage()
    java기초
    Java this
    데이터 타입
    java 제어자
    데이터 크기
    java 유클리드 호제법
    java two-pointer
    개발로드맵
    java enhance switch
    java super
    java 에라토스테네스의 체
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
29일차 - 알고리즘 코드카타
상단으로

티스토리툴바