Skip to content

Instantly share code, notes, and snippets.

@shoark7
Last active September 16, 2019 00:53
Show Gist options
  • Save shoark7/a011b607ec5b6cc7b922e495d4dd83ac to your computer and use it in GitHub Desktop.
Save shoark7/a011b607ec5b6cc7b922e495d4dd83ac to your computer and use it in GitHub Desktop.
스터디 잘하세요! 화이팅..

도움이 될지 모르겠네요. 왼손님 코드는 뭐시냐 그분이 저보다 더 잘 짜시겠죠. 답이 있다고 하니 굳이 넣지는 않겠습니다.

1. K번째 수

def solution(array, commands):
    ans = [] 
    for cmd in commands:
        start, end, k = cmd
        part = sorted(array[start-1:end])
        ans.append(part[k-1])
        
    return ans

파이썬은 리스트에서 슬라이싱(slicing)을 지원해서 이 문제가 무식하게 쉽습니다. 슬라이싱 할 때 특정 위치마다 -1을 해야한다는 것만 헷갈리지 않으면 될 것 같아요.


2. 체육복

def solution(N, lost, reserve):
    lost, sorted_reserve = sorted(lost), sorted(reserve)
    reserve = []
    # 문제 그 어디에도 목록이 정렬되어 있을 것이라는 희망을 품게 하는 문장은 없습니다.

    for r in sorted_reserve:
        if r in lost:
            lost.pop(lost.index(r))
        else:
            reserve.append(r)
    
    for r in reserve:
        if (r-1) in lost:
            lost.pop(lost.index(r-1))
        elif (r+1) in lost:
            lost.pop(lost.index(r+1))
    
    return N - len(lost)

이 문제는 사실 생각보다 간단합니다. 너무 어렵게 고민하면 오히려 안 풀리는 것 같아요. 이 문제는 다른 분들이 어떻게 풀었을지 개인적으로 궁금하거든요? 저도 한 10분 이상 썼어요. 푸신 분들 중에 기발하게 푸신 분들 있으면 코드 공유 부탁해도 될까요? 미리 감사해요 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment