본문 바로가기
반응형

개발/알고리즘 문제56

[Codility] PermMissingElem 0. 문제 주어진 리스트 A는 N개의 서로 다른 숫자로 이루어져 있다. 그리고 이 리스트에는 [1..(N + 1)] 이렇게 1부터 N+1까지의 숫자가 무작위로 섞여있는데 항상 하나의 숫자가 빠져있다. 이 빠진 숫자를 구하시오. 1. 답변 주의할 점은... - 리스트 아이템이 하나일 경우 - 첫 번째(1) 혹은 마지막(N+1)이 빠졌을 경우 이걸 감을 못잡아서 계속 고쳤다... def solution(A): if A: sorted_A = sorted(A) for idx, n in enumerate(sorted_A, 1): if idx != n: return idx return sorted_A[-1]+1 else: return 1 enumerate() 는 내장함수인데 실제 업무에서도 굉장히 유용하게 쓰고 있다. 2017. 11. 5.
[Codility] CyclicRotation 0. 질문 인자 값으로 리스트 A와 상수 K를 받는다. 리스트 A의 값들은 K만큼 오른쪽으로 이동하며 리턴값은 전부 이동하고 난 뒤의 A이다. 1. 답변 def solution(A, K): if A: if len(A) 2017. 11. 4.
[Codility] OddOccurrencesInArray 0. 문제 1개 이상의 숫자가 들어있는 리스트 A가 주어진다. 여기 리스트 A에서는 모든 아이템들이 2개, 혹은 4개, 6개 이렇게 짝수 개의 짝을 이루고 있다. 딱 하나만 빼고. 예를 들자면 이렇다.A = [1, 9, 6, 3, 3, 1, 7, 6, 9]여기서 짝이 없는 하나의 숫자를 찾아 리턴해야 한다. 1. 답변 꽤 빠르게 짰는데, 처음엔 리스트 A를 set으로 중복 제거하고, 이 set을 for loop로 돌려 A.count(num) 이런 식으로 리스트 A 내의 숫자를 카운트하게 했는데... 너무 느려서 performance에서 점수 깎임. 검색해보니 sorted(리스트) 이 함수가 정말 빠르다고 해서 사용했다. 아이템이 짝수이거나 리스트의 길이가 1인 경우 등의 예외사항을 모두 try/excep.. 2017. 11. 2.
[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_s.. 2017. 11. 1.
반응형