728x90
반응형
2022.12.24
코테 문제풀이 23주차 03번 문제
문제
① 월간 코드 챌린지 시즌1 : 이진 변환 반복하기
② 링크
접근방법
생각해낸 방법은 1가지
① 재귀호출
풀이
① 접근방법 : ①
② 풀이
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
32
33
34
35
36
37
38
39
|
class Solution {
/*
* Date: 2022-12-22
* Time: 17:18
*/
public int[] solution(String s) {
return translateToByte(0, s, 0);
}
/*
* 재귀호출을 통해 2진법으로 변환 및 '0'제거를 반복한다.
* @param loop 호출횟수
* @param s 2진법 문자열
* @param delCnt '0'제거 횟수
* @return String[] {반복횟수, '0'제거 횟수} 형태의 int 고정배열
*/
public int[] translateToByte(int loop, String s, int delCnt) {
/*
* @Desc
* 1. Escape 조건(파라미터로 받는 2진법 문자열이 '1'일때) 설정
* 2. 2진법 문자열에서 '0'을 제거하며 제거한 횟수를 카운트한다.
* 3. '1'로만 만들어진 문자열의 길이를 2진법 문자열로 변환한다.
* 4. 탈출 조건을 만족하면(반복횟수, '0'제거 횟수) 형태의 int 고정배열로 리턴한다.
*/
if ("1".equals(s))
return new int[] {loop, delCnt};
String tmp = "";
for (String str: s.split("")) {
if ("0".equals(str))
delCnt++;
else
tmp += str;
}
return translateToByte(loop+1, Integer.toBinaryString(tmp.length()), delCnt);
}
}
|
cs |
결과
주의사항
① 없음
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[코테/JAVA] 2022 KAKAO BLIND RECRUITMENT : 주차 요금 계산 (0) | 2022.12.29 |
---|---|
[코테/JAVA] 월간 코드 챌린지 시즌2 : 2개 이하로 다른 비트 (0) | 2022.12.24 |
[코테/JAVA] 연습문제 : 최댓값과 최솟값 (0) | 2022.12.19 |
[코테/JAVA] 연습문제 : 숫자의 표현 (0) | 2022.12.19 |
[코테/JAVA] 연습문제 : 다음 큰 숫자 (0) | 2022.12.13 |
댓글