codility - BinaryGap 정답 및 해설
뿌리튼튼 CS/Algorithm2017. 6. 6. 21:24
난이도 ★☆☆☆☆
힌트
그냥 빼먹는 것 없이 반복문을 잘 돌면 됩니다 |
이하는 코드입니다.
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 40 41 42 43 | public int solution(int N) { String biStr = Integer.toBinaryString(N); int firstOneIndex = getNextOneIndex(biStr, 0); if (firstOneIndex < 0) { return 0; } int maxGap = 0; while (true) { int nextOneIndex = getNextOneIndex(biStr, firstOneIndex + 1); if (nextOneIndex < 0) { break; } int gap = nextOneIndex - firstOneIndex - 1; if (gap > maxGap) { maxGap = gap; } firstOneIndex = nextOneIndex; } return maxGap; } private int getNextOneIndex(String biStr, int startIndex) { int nextOneIndex = -1; for (int i = startIndex; i < biStr.length(); i++) { char c = biStr.charAt(i); if (c == '1') { nextOneIndex = i; break; } } return nextOneIndex; } | cs |
'뿌리튼튼 CS > Algorithm' 카테고리의 다른 글
codility - CyclicRotation 정답 및 해설 (0) | 2017.06.06 |
---|---|
codility - OddOccurrencesInArray 정답 및 해설 (0) | 2017.06.06 |
Conversions(CONVERT) 정답 코드 (0) | 2015.10.09 |
Endians(ENDIANS) 정답 코드 (0) | 2015.10.09 |
Mispelling(MISPELL) 정답 코드 (0) | 2015.04.10 |