본문 바로가기
반응형

codility5

[Codility] CountDiv 0. 문제세 개의 integer A, B, K 가 있다. A와 B 사이에 있는 integer 중 K로 나누어 떨어질 수 있는 수의 개수를 구하여라. 1. 답변 문제는 쉬웠는데 예외 사항을 체크하지 못해 여러 번 돌려야 했다. A나 B가 0일 경우엔 아무 수로나 나누어 떨어지는데 이걸 그냥 넘어감 A가 K 이상일 경우, B가 K 이상일 경우를 나눠 몫을 구하고, A가 0일 경우엔 결과값에 1을 더했다. def solution(A, B, K): result = 0 if A >= K: result = B // K - (A-1) // K elif B >= K: result = B // K if A == 0: result += 1 return result 2. 결과 2017. 11. 14.
[Codility] PermCheck 0. 문제N개의 상수로 이루어진, 비어있지 않은 리스트 A가 있다. A 순열(permutation)은 1부터 N 까지의 중복되지 않는 숫자의 연속이다. 주어지는 리스트 A가 순열인지 판별하라. 1. 답변 이번 것도 난이도가 매우 낮았다. def solution(A): sorted_a = sorted(set(A)) if len(sorted_a) == len(A) and sorted_a[-1] == len(A): return 1 else: return 0 시간복잡도는 O(N) or O(N*log(N)) 2017. 11. 9.
[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.
반응형