250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 막내의막무가내 플러터
- 부스트코스에이스
- 막내의막무가내 코틀린
- flutter network call
- 막내의막무가내 플러터 flutter
- 막내의막무가내 일상
- 막내의막무가내 프로그래밍
- 막내의막무가내 안드로이드
- 안드로이드 sunflower
- 막내의막무가내 rxjava
- 막무가내
- 막내의막무가내
- 막내의막무가내 알고리즘
- 부스트코스
- 2022년 6월 일상
- 막내의막무가내 안드로이드 에러 해결
- Fragment
- 주엽역 생활맥주
- 프래그먼트
- 막내의막무가내 안드로이드 코틀린
- 안드로이드 Sunflower 스터디
- 막내의 막무가내 알고리즘
- 프로그래머스 알고리즘
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 목표 및 회고
- 막내의막무가내 SQL
- 막내의 막무가내
- 주택가 잠실새내
- 막내의막무가내 코틀린 안드로이드
- 안드로이드
Archives
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[알고리즘] 프로그래머스 이진 변환 반복하기 -문자열, 단순구현- 자바 본문
728x90
프로그래머스 LV2 문제를 풀어봤습니다. ㅎㅎ (휴일아침에 알골이라니...할게많다. 이모티콘 기능은 언제생겼찌)
문자열을 조작하는 단순 구현문제였습니다. 요즘 특정 알고리즘 말고 이런 문자열 조작과 시키는대로 단순 구현하는 문제들도 많이 나오는 추세라 중요하다고 생각합니다.
풀이는 주석으로 대신합니다.
[Java]
class Solution {
public int[] solution(String x) {
int[] answer = new int[2];
int removeCnt = 0; // 제거된 0의 모든 개수
int convertCnt = 0; //변환 횟수
while (!x.equals("1") && !x.equals("")) { //빈문자열이거나 1이 될때까지 반복
// 1. x의 모든 0을 제거합니다.
removeCnt += x.chars().filter(c -> c == '0').count();
x = x.replaceAll("0", "");
// 2. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다.
int c = x.length();
StringBuilder str = new StringBuilder();
while (c != 1) { // 1까지 나눠졌을때까지 반복
str.insert(0, (c % 2));
c = c / 2;
if (c == 1) str.insert(0, 1);
}
x = str.toString();
convertCnt++;
}
answer[0] = convertCnt;
answer[1] = removeCnt;
return answer;
}
}
댓글과 공감은 큰 힘이 됩니다. 감사합니다. !!
728x90
'알고리즘 > 문자열, 정렬' 카테고리의 다른 글
[알고리즘] 프로그래머스 [3차] 방금그곡 (2018 KAKAO BLIND RECRUITMENT) -문자열, 구현- 자바 (1) | 2021.07.07 |
---|---|
[알고리즘] 백준 18870 좌표 압축 -정렬- 자바 코틀린 (0) | 2021.05.11 |
[알고리즘] 프로그래머스 [3차] 파일명 정렬 -정렬- 자바 (0) | 2020.10.12 |
[알고리즘] 백준 10814 나이순 정렬 -정렬- (0) | 2020.06.24 |
[알고리즘] 프로그래머스 다음 큰 숫자 -연습문제, 문자열- (0) | 2020.04.22 |
Comments