Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 카카오블라인드코딩테스트
- React.js
- 완전탐색
- React
- Algorithm
- 경제공부
- BOJ
- 달빛클럽1기
- SoftwareExpertAcademy
- Array
- dfs
- ReactJS로 영화 웹 서비스 만들기
- 노마드코더
- 알고리즘
- 프로그래머스
- HashMap
- 백준
- 달빛클럽
- JPA
- Stack
- programmers
- SWEA
- 리액트
- 인플레이션에서 살아남기
- 달빛캠퍼스
- Java
- 노마드코더 강의
- 자바
- 달빛클럽 1기
- 재귀
Archives
- Today
- Total
th42500의 TIL
[Java] 월간 코드 챌린지 시즌1 - 이진 변환 반복하기 (Lv2) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/70129
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
✔ 입출력 예시
💡 풀이과정 및 포인트
1️⃣ 초기 문자열 s가 1이 될때까지 변환 작업 반복
2️⃣ s에서 모든 0 제거
3️⃣ 0을 제거한 문자열의 길이를 이진수로 변환
4️⃣ 정답 배열 answer의 길이는 2 👉 [제거한 모든 0의 개수, 이진수로 변환한 횟수]
✔ 소스코드
import java.util.Arrays;
public class Solution { // 이진 변환 반복하기
public static void main(String[] args) {
// String s = "110010101001";
// String s = "01110";
String s = "1111111";
System.out.println(solution(s));
}
private static int[] solution(String s) {
int[] answer = new int[2]; // [이진변환횟수, 제거된 모든 0의 개수]
while(!s.equals("1")) {
// 1. 0 제거하기 & 0 개수세기
int x = s.length(); // 원래 s길이
s = s.replaceAll("[^1-9]", ""); // 0 모두 제거
answer[1] += x - s.length(); // 제거된 0의 개수 = 원래 길이 - 0을 제거한 문자열 길이
// 2. 이진변환하기
s = Integer.toBinaryString(s.length()); // 0을 제거한 x의 길이
answer[0]++; // 이진변환횟수 + 1;
}
return answer;
}
}
❗ 결과
이진변환을 하기 위한 방법으로는
1️⃣ Integer.toString(변환할 정수, 2)
2️⃣ Integer.toBinaryString(변환할 정수)
위의 2가지 방법이 있다는 것을 알게되었다 😁
'Algorithm > Programmers' 카테고리의 다른 글
[Java] 연습문제 - 최솟값 만들기 (Lv2) (0) | 2022.08.03 |
---|---|
[Java] 2021 Dev-Matching: 웹 백엔드 개발(상반기) - 행렬 테두리 회전하기 (Lv2) (0) | 2022.08.03 |
[Java] 연습문제 - 최댓값과 최솟값 (Lv2) (0) | 2022.08.02 |
[Java] 2018 KAKAO BLIND RECUITMENT - [3차] n진수 게임 (Lv2) (0) | 2022.08.01 |
[Java] 2022 KAKAO BLIND RECRUITMENT - k진수에서 소수 개수 구하기 (Lv2) (0) | 2022.08.01 |
Comments