-
[Codility] BinaryGap 100점알고리즘 2019. 3. 14. 22:28
문제출처 : https://app.codility.com/programmers/lessons/1-iterations/binary_gap/
문제 요약 : 입력받은 숫자를 이진수로 변환후, 1에 1까지의 0의 개수를 각각 구한뒤 가장 큰 0의 개수를 반환해라.
ex) 입력: 1001 출력: 2
입력: 1010001 출력: 3
[100점]
입력받은 숫자를 Integer클래스로 이진수 문자열로 바꾼뒤, 숫자로된 문자열을 배열에 넣었다.
배열에 넣은 후 반복문을 돌면서 0일때 마다 임시 변수에 카운트값을 증가시켰다.
그다음 1을 만나면 lit에 카운트값을 담았다. 그리고 임시변수값을 초기화해버림.
마지막에는 list에서 가장 큰 값을 반환해버렸다.
1234567891011121314151617181920212223242526272829303132333435package test_java2;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class Main {public static void main(String[] args) {System.out.println(solution(32));}public static int solution(int N) {String input = Integer.toBinaryString(N);String[] arr = input.split("");List list = new ArrayList();int zeroCount=0;for(int i=0 ;i<arr.length; i++) {if("0".equals(arr[i])) zeroCount ++;if("1".equals(arr[i])) {list.add(zeroCount);zeroCount = 0;}}return (int) Collections.max(list);}}// CALSS ENDcs '알고리즘' 카테고리의 다른 글
[Codility] PermMissingElem 30→80→100 (0) 2019.03.31 [Codility] FrogJmp 100점 (0) 2019.03.23 [Codility] CyclicRotation 87점→100점 (0) 2019.03.03 [Codility] OddOccurrencesInArray 55점→100점 (0) 2019.02.16 [알고리즘] 삽입정렬 (0) 2018.08.20