반응형
0.
코딩 소모임에서 코딜리티codility, 해커랭크hackerrank 를 알게되었다.
코딜리티는 여기저기서 들어보긴 했는데 가입해서 문제를 풀어보는 건 처음이었다.
자동 채점 방식을 그닥 좋아하지 않아서 프로젝트 오일러를 좋아했었는데, 이것도 익숙해지면 괜찮을 듯.
1. 문제
binary gap은 1000010001과 같은 2진법 수에서 1과 1사이에 있는 0의 개수이다.
리스트 N이 주어지면 여기에서 가장 긴 binary gap을 찾아야 한다.
- 마지막이 1이 아닌 0으로 끝날 경우를 체크해주어야 한다. 이걸 체크 안해서 틀림
2. 답변
def solution(N): bin_str = bin(N).replace('0b', '') bin_gap_list = list(filter(None, bin_str.split('1'))) if bin_str[-1] == '0': bin_gap_list.pop() if bin_gap_list: max_bin_gap = len(max(bin_gap_list, key=len)) else: max_bin_gap = 0 return max_bin_gap
프로그래밍 언어를 고르고 그 언어로 풀게 돼있는데,
# write your code in Python 2.7
이라 적혀있었지만 print() 괄호가 되는 걸로 봐서 python3도 지원하는 듯하다.
3.
결과는 이런 식으로 나온다.
테스트를 정말 세세하게 한다!
큰 수, 작은 수, 여러 가지 예외 상황 등 예외 조건들을 거의 다 집어넣는 듯 하다.
처음에 80%가 나왔는데 평범한 상황에서 벗어난 사소한 예외들을 염두에 두지 않아서 몇 개가 잡혔다.
어디서 틀렸는지 보고 그에 맞는 조건을 추가하니 모두 통과...
단점은 결과 화면을 끄고 나면 다시는 못 본다는 거...?
암만 찾아봐도 없다.
반응형
'개발 > 알고리즘 문제' 카테고리의 다른 글
[Codility] CyclicRotation (4) | 2017.11.04 |
---|---|
[Codility] OddOccurrencesInArray (4) | 2017.11.02 |
[Project Euler 56] ab 형태의 자연수에 대해 자릿수 합의 최대값 구하기 (2) | 2017.08.17 |
[Project Euler 42] 주어진 텍스트 파일에 들어있는 '삼각단어'의 개수는? (2) | 2016.07.06 |
[Project Euler 41] n자리 팬디지털 소수 중에서 가장 큰 수 (4) | 2016.07.06 |
댓글