본문 바로가기
TechNical/JAVA

[codility] BinaryGap

by 강멍멍이 2018. 1. 12.
반응형

최근 codility 라는 재미있는 사이트를 알게 됐다.

문제를 풀면서 느낀건..... 난 멍청하고 무식하게 코딩하구나 이다 ㅠ_ㅠ...

인터넷 뒤져보니 똑똑한 사람 많구나 라는 걸 느꼈다.

성능 관련으로 시간복잡도, 공간복잡도라는게 있다는걸 이제서야 알게 됐다.

루프를 최소한으로 하고 메모리도 덜 잡아야 한다.

그리고 2진수나 비트 계산이 꽤나 유용하고 멋지다는 것도 알게 됐다.

(하지만 난 수학장애라서 ... 너무 힘들다.)

효율적으로 개발하도록 이제부터는 생각 좀 하고 살자.

 

공개적으로 코드 올리는 것도 부끄럽지만... 그냥 적어 본다.

(codility는 내가 푼 코딩을 다시 볼 수 없다.....)

 

Q. 바이너리 값에서 1과 1사이가 가장 큰 값을 찾아보세요.

    N = 1041

A. 5

 

public int solution(int N){

String convS = Integer.toBinaryString(N);

int pos = 0;

int maxGap = 0;

while(convS.indexOf("1", pos) != -1){

if(convS.indexOf("1", pos) - pos > maxGap){

maxGap = convS.indexOf("1", pos) - pos;

}

pos = convS.indexOf("1", pos) + 1;

}

return maxGap;

}

 

반응형

댓글