문제 https://app.codility.com/programmers/lessons/6-sorting/max_product_of_three/ MaxProductOfThree coding task - Learn to Code - Codility Maximize A[P] * A[Q] * A[R] for any triplet (P, Q, R). app.codility.com 문제 풀이 리스트의 내의 값들 중 3개를 선택하여 곱하였을 때 가장 큰 값이 되는 경우를 찾는 문제이다. 코드 def solution(A): A.sort() max_plus = A[-1] * A[-2] * A[-3] max_minus = A[-1] * A[0] * A[1] return max(max_plus, max_minus) 처음에는..
문제 https://app.codility.com/programmers/lessons/6-sorting/distinct/ Distinct coding task - Learn to Code - Codility Compute number of distinct values in an array. app.codility.com 문제 풀이 리스트 내에 중복되는 원소들을 제외하고 구분되는 값들이 몇개가 있는지 반환하는 문제이다. 코드 def solution(A): return len(set(A)) set을 통해 중복 값을 제외하고 구분되는 값을 구할 수 있다.
문제 https://app.codility.com/programmers/lessons/5-prefix_sums/passing_cars/ PassingCars coding task - Learn to Code - Codility Count the number of passing cars on the road. app.codility.com 리스트 내의 자동차 방향(east: 0 , west :1)이 주어질 때, 각 방향이 쌍을 이루는 횟수를 찾는 문제이다. 만약 인덱스 3에서 east로 가는 자동차가 있다면, 인덱스 3 이후로의 자동차들만 쌍을 이루는지 확인하고, 앞 부분은 확인하지 않아도 된다. 문제 풀이 그림 1은 문제의 기본 예제에서 값을 도출하는 과정이다. 0 (east)로 가는 자동차와 1 (we..
문제 https://app.codility.com/programmers/lessons/5-prefix_sums/min_avg_two_slice/ MinAvgTwoSlice coding task - Learn to Code - Codility Find the minimal average of any slice containing at least two elements. app.codility.com 문제를 보면 모든 구간에 대해 평균을 구해야 할 것 같다. 하지만 모든 구간에 대한 평균을 구할 경우 효율성 부분을 통과하지 못하여 점수를 받지 못한다. 서브 그룹에서 평균을 구할 때의 특성을 활용할 경우 문제를 쉽게 해결 할 수 있으나 그렇지 않을 경우는 풀지 못한다. 문제 풀이 예를 들어 수가 4, 2, 2..