취업/TIL

20231031_파이썬 알고리즘_k번째큰수

개발자 덕구🐾 2023. 11. 1. 21:37
728x90

 

 

 

그냥 귀여워서

 

 

https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8/dashboard

 

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비) - 인프런 | 강의

파이썬(Python)을 이용해 코딩 테스트 문제 풀이를 합니다., 개발자 취업 & 이직을 위한 핵심 코스 📝코딩테스트 대비 파이썬 알고리즘 문제풀이!  📢 수강 전 반드시 확인해주세요! 강의에서 제

www.inflearn.com

 

 

김태원 강사님의 강의를 보면서 알고리즘을 공부하고있다. 

 

 

 

오늘은 K번째 큰수를 풀고있다. 

 

이렇게 풀어서 채점은 맞긴했는데 

더 좋은 방법이 있을것같다. 

 

from itertools import combinations as c 

if __name__=="__main__" :
    n,k = map(int,input().split())
    arr = list(map(int,input().split()))
    
    set_arr = set()
    arr = list(c(arr,3))
    for i in range(len(arr)) : 
        tmp = 0
        for j in arr[i] :
            tmp+=j 
        set_arr.add(tmp)
    arr = sorted(list(set_arr),reverse=True)
    print(arr[k-1])

흠..

 

더 생각해봤는데

 

if __name__=="__main__" :
    n,k = map(int,input().split())
    arr = list(map(int,input().split()))
    
    set_arr = set()
    arr = list(c(arr,3))
    for i in range(len(arr)) : 
        set_arr.add(arr[i][0]+arr[i][1]+arr[i][2])
    arr = sorted(list(set_arr),reverse=True)
    print(arr[k-1])

이정도 ? 

 

 

선생님께서는 combination이 아닌 3중 for문을 이용해서 숫자 3개의 조합을 만드셨다. 

여기서 permutation이 아닌 combination을 쓴 이유는 순서가 상관없이 같은 원소가 3개면 동일하기 때문이다. 

 

 

반응형