Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- API
- django
- 프로젝트오일러
- 퍼즐게임
- 컴퓨터네트워크
- 인디게임
- 스팀
- AWS
- Project Euler
- 먹방
- coursera
- 중국맛집
- 몽골여행
- lambda
- 블라디보스토크
- 알고리즘
- Python
- github
- flask
- 우분투
- 워킹데드
- certbot
- pycon
- FPS
- https
- codility
- 그래픽노블
- 파이썬
- 게임
- C#
- Today
- 134
- Total
- 324,498
YUDA't
[Codility] BinaryGap 본문
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 (0) | 2017.11.04 |
---|---|
[Codility] OddOccurrencesInArray (0) | 2017.11.02 |
[Project Euler 56] ab 형태의 자연수에 대해 자릿수 합의 최대값 구하기 (0) | 2017.08.17 |
[Project Euler 42] 주어진 텍스트 파일에 들어있는 '삼각단어'의 개수는? (0) | 2016.07.06 |
[Project Euler 41] n자리 팬디지털 소수 중에서 가장 큰 수 (0) | 2016.07.06 |
0 Comments