티스토리 뷰

코딜리티에서 예제 Sort를 풀어 보았다.

주요한 문제 해결 전략은 입력된 데이터를 소팅하고 나서 답을 찾는 것 이다.

 

 

1번 문제는 set으로 중복을 제거하고 개 수를 리턴 했다.

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

 

2번문제는 sort 이후에 최대값을 찾는 형태로 음의 입력이 있는 것을 감안하여 CASE가 하나 더 나오는 것이 주요 했다.


def solution(A):
    B = A.sort()

    if A[0]*A[1]*A[-1]> A[-1]*A[-2]*A[-3]:
        return A[0]*A[1]*A[-1]
    else:
        return A[-1]*A[-2]*A[-3]

 

 

3번문제는 input 이 특정 숫자 이하 일 때 예외처리, sort 이후에 순차적으로 1회 탐색 하는 형태로 해결 하였다.

def solution(A):
    if len(A)<3:
        return 0

    A.sort()

    for i in range(0,len(A)-2):
        if A[i]+A[i+1]>A[i+2]:
            return 1
    return 0

 

4번 문제는 전혀 풀지 못했고, 정답을 찾아 확인하고 작성해 보았다.

 

def solution(A):
    disc = []
    for i, v in enumerate(A):
        disc.append((i-v, -1))
        disc.append((i+v, 1))

    disc = sorted(disc)
    t = 0
    r = 0

    for d in disc:
        print(d,t,r)
        if d[1] == 1:
            t -= 1
        else :
            r += t
            t += 1

'코딩테스트' 카테고리의 다른 글

로또의 최고 순위와 최저 순위 - Programmers  (0) 2022.05.02
신고 결과 받기 - Programmers  (0) 2022.05.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함