본문 바로가기

카테고리 없음

코딜리티 lesson6 Distinct, MaxProductOfThree, Triangle, NumverOfDiscIntersections(?)

Distinct

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    return len(set(A))

 

MaxProductOfThree

[최초풀이]

def solution(A):
    if len(A)== 3:
        return A[0]*A[1]*A[2]
        
    minusA = []
    plusA = []
    for x in A:
        if x >= 0 :
            plusA.append(x)
        else:
            minusA.append(x)

    plusA = sorted(plusA)
    maxA = -10000000000

    if len(minusA) >= 2:
        minusA = sorted(minusA)
        if len(plusA) == 0:
            temp = minusA[-1] * minusA[-2] * minusA[-3]
        else:
            temp = minusA[0] * minusA[1] * plusA[-1]
        if temp > maxA:
            maxA = temp

    if len(plusA) >= 3:
        temp = plusA[-1] * plusA[-2] * plusA[-3]
        if temp > maxA:
            maxA = temp
    
    return maxA

[다른풀이]

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    A = sorted(A) 
    return max(A[-1]*A[-2]*A[-3], A[0]*A[1]*A[-1])


Triangle

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    A = sorted(A)
    for i in range(len(A)-2):
        if A[i] + A[i+1] > A[i+2]:
            return 1
    return 0

 

NumverOfDisIntersections