전체 103

[Medium] NumberSolitaire

[문제] 0 ~ N-1 의 배열에서 1~6 칸씩 이동하여 N-1에 도착할 때까지 방문한 index의 값의 합 중 가장 큰 값을 찾는 문제 NumberSolitaire coding task - Learn to Code - Codility In a given array, find the subset of maximal sum in which the distance between consecutive elements is at most 6. app.codility.com [코드] 시간복잡도 : O(N) 맨 끝에서 부터 1-6칸씩 이동하며 N-1에 도착할 때까지 방문한 index의 값의 합 중 최대값을 기록하고 0번째 배열의 계산 값을 반환 def solution(A): # write your code in P..

기타/Codility 2022.06.11

[Easy] MaxSliceSum

[문제] 배열 내 연속된 수들의 합이 가장 큰 경우의 값을 찾는 문제 MaxSliceSum coding task - Learn to Code - Codility Find a maximum sum of a compact subsequence of array elements. app.codility.com [코드] 시간복잡도 : O(N) 배열 내 이전 값들과의 합이 현재 값보다 작다면 다시 현재 값부터 더해나가기 시작한다 def solution(A): # write your code in Python 3.6 answer = -2147483648 sum = 0 for num in A : sum = sum + num sum = max(num, sum) answer = max(answer, sum) return ..

기타/Codility 2022.06.11

[Demo] MissingInteger

[문제] Codility f&q에서 제공되는 데모 문제 Codility Your browser is not supported You should use a supported browser. Read more app.codility.com [코드] 시간복잡도 : O(N) * Python list의 in 연산자의 시간복잡도는 O(N)임 def solution(A): # write your code in Python 3.6 answer = 1 check = [0 for i in range(1000002)] A.sort() for num in A : if num > 0 : if answer == num : check[num] = 1 answer = answer + 1 elif check[num] != 1 : b..

기타/Codility 2022.06.11

[Easy] Nesting

[문제] 주어진 문자열이 완성된 괄호인지 확인하는 문제 https://app.codility.com/programmers/lessons/7-stacks_and_queues/nesting/ Nesting coding task - Learn to Code - Codility Determine whether a given string of parentheses (single type) is properly nested. app.codility.com [코드] stack을 활용 시간복잡도 : O(N) def solution(S): # write your code in Python 3.6 stack = [] for s in S : if not stack : stack.append(s) elif stack[-1] ..

기타/Codility 2022.06.10

[Easy] MinPerimeterRectangle

[문제] N = A*B 를 만족하는 A, B 중 2*(A+B)의 값이 가장 작은 경우를 찾는 문제 MinPerimeterRectangle coding task - Learn to Code - Codility Find the minimal perimeter of any rectangle whose area equals N. app.codility.com [풀이] 1 부터 N의 제곱근 사이에서 N의 약수를 찾고, 가장 큰 약수를 A로 여겨 2*(A+N/A) 값을 반환 시간복잡도 : O(sqrt(N)) import math def solution(N): # write your code in Python 3.6 root = int(math.sqrt(N)) A = 1 for i in range(1, root+1)..

기타/Codility 2022.06.10

[Easy] FrogRiverOne

[문제] 시간이 흐르며 낙엽이 떨어지고 개구리가 반대편 낙엽을 밟으며 강으로 건너갈 수 있는 최소 시간을 구하는 문제 FrogRiverOne coding task - Learn to Code - Codility Find the earliest time when a frog can jump to the other side of a river. app.codility.com [코드] 시간복잡도: O(N) def solution(X, A): # write your code in Python 3.6 setleaf = set() for idx, position in enumerate(A) : setleaf.add(position) if len(setleaf)==X: return idx return -1

기타/Codility 2022.06.09

[Easy] CountDistinctSlices - 70%

[문제] 배열 내 같은 값을 갖지 않는 연속된 수를 갖는 배열의 연속된 부분 집합을 구하는 문제 CountDistinctSlices coding task - Learn to Code - Codility Count the number of distinct slices (containing only unique numbers). app.codility.com [코드] 시간복잡도 : O(N * (N+M)) def solution(M, A): # write your code in Python 3.6 listA = [] answer=0 for a in A: if a in listA: idx = listA.index(a) answer=answer + int((len(listA)*(len(listA)+1))/2) i..

기타/Codility 2022.06.08

[Easy] TapeEquilibrium

[문제] 배열을 두 개의 배열로 나눈 후 각 배열의 합의 차이가 가장 작은 경우의 값을 구하는 문제 TapeEquilibrium coding task - Learn to Code - Codility Minimize the value |(A[0] + ... + A[P-1]) - (A[P] + ... + A[N-1])|. app.codility.com [코드] 시간복잡도 : O(N) def solution(A): # write your code in Python 3.6 lenth = len(A) tape1 = A[0] tape2 = sum(A[1:]) answer = abs(tape1-tape2) for i in range(1, lenth-1) : tape1 = tape1 + A[i] tape2 = tape..

기타/Codility 2022.06.08

[Easy] OddOccurencesInArray

[문제] 배열 내 중복된 값들 중 홀수개의 값을 갖는 값을 찾는 문제 OddOccurrencesInArray coding task - Learn to Code - Codility Find value that occurs in odd number of elements. app.codility.com [코드] 시간복잡도 : O(N) 정렬 후 2개씩 값을 비교하여 같지 않은 수를 return def solution(A): # write your code in Python 3.6 A.sort() if len(A) == 1: return A[0] idx=0 while idx+1 < len(A) : if A[idx] != A[idx+1] : return A[idx] idx = idx+2 return A[-1]

기타/Codility 2022.06.07
반응형