반응형
최근 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;
}
반응형
댓글